题目描述
输入一个正整数N,输出N的阶乘。
输入描述:
正整数N(0<=N<=1000)
输出描述:
输入可能包括多组数据,对于每一组输入数据,输出N的阶乘
示例1
输入
4 5 15
输出
24 120 1307674368000
/*普通的阶乘求法还可以用递归。 #include<iostream> using namespace std; long long jiecheng(int n) { long long ans=1; for(int i=1;i<=n;i++) { ans*=i; } return ans; } int main() { int n; while(cin>>n) { cout<<jiecheng(n)<<endl; } }*/ #include<iostream> using namespace std; int main() { int n; while(cin>>n) { int ans[100000]; int size=0; ans[size++]=1; for(int i=2;i<=n;i++) { int carry=0; for(int j=0;j<size;j++) { int t=(i*ans[j]+carry)/10; ans[j]=(i*ans[j]+carry)%10; carry=t; } while(carry) { ans[size++]=carry%10; carry/=10; } } for(int i=size-1;i>=0;i--) cout<<ans[i]; cout<<endl; } return 0; }