递归法:
#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;
}