递归法
#include <iostream> using namespace std; long Fac(int n){ if(n==0){ return 1; } else{ return n*Fac(n-1); } } void main(){ int n; long f; cout <<"please input a number:" << endl; cin >> n; f = Fac(n); cout << "Result:" << f << endl; }
迭代法
#include <iostream> using namespace std; typedef usigned int UINT; // 自定义类型 long Fac(const UINT n){ long ret = 1; for(int i = 1; i <= n; i++){ ret *=i; } return ret; } void main(){ int n; long f; cout <<"please input a number:" << endl; cin >> n; f = Fac(n); cout << "Result:" << f << endl; }