描述
给定一个数n,范围为0≤n≤100,请你编程精确的求出n的阶乘n!。
输入
输入数据有多行,每行一个整数n,当n<0时输入结束。
输出
输出n的阶乘。
样例输入
1
2
3
4
-1
样例输出
1
2
6
24
1 #include<stdio.h> 2 #include<math.h> 3 #include<string.h> 4 #include<ctype.h> 5 6 int a[10000]; 7 8 void deal(int n) 9 { 10 int i,j,len,flag,t; 11 a[0]=1; 12 if(n==0) 13 { 14 printf("1\n"); 15 return; 16 } 17 else 18 { 19 len=1; 20 for(i=1; i<=n; i++) 21 { 22 flag=0; 23 for(j=0; j<len; j++) 24 { 25 t=i*a[j]; 26 a[j]=(t+flag)%10; 27 flag=(t+flag)/10; 28 } 29 while(flag!=0) 30 { 31 a[j]=flag%10; 32 j++; len++; 33 flag=flag/10; 34 } 35 } 36 for(i=len-1; i>=0; i--) 37 { 38 printf("%d",a[i]); 39 } 40 printf("\n"); 41 } 42 } 43 44 void solve() 45 { 46 int n; 47 while(scanf("%d",&n) && (n>=0)){ 48 deal(n); 49 } 50 } 51 52 int main() 53 { 54 solve(); 55 return 0; 56 }