#include "iostream"
#include "stdio.h"
#include <vector>
#include <cstring>
#include <algorithm>
#include <string>
#include <string.h>
#include <stack>
#include <ctype.h>
#include <functional>
#include <math.h>
using namespace std;
//1076
int a[10010];
int n,t,idx;
int main(){
//freopen("input.txt","r",stdin);
while(cin>>n){
memset(a,0,sizeof(a));
if(n==0) {printf("1\n");continue;}
t=n;idx=0;
while(t) {a[idx++]=t%10; t/=10;}
for(int i=1;i<n;i++){ //表示从1*2...*(n-1)
t=0;
for(int j=0;j<idx;j++){
t=a[j]*i+t;
a[j]=t%10;
t/=10;
}
while(t){
a[idx++]=t%10;
t/=10;
}
}
for(int i=idx-1;i>=0;i--){
printf("%d",a[i]);
}
printf("\n");
}
return 0;
}
/**************************************************************
Problem: 1076
User: cust123
Language: C++
Result: Accepted
Time:1290 ms
Memory:1556 kb
****************************************************************/
题目1076:N的阶乘
最新推荐文章于 2018-07-14 08:14:18 发布