1172:求10000以内n的阶乘
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
求10000以内n的阶乘。
【输入】
只有一行输入,整数n(0≤n≤10000)。
【输出】
一行,即n!的值。
【输入样例】
4
【输出样例】
24
【来源】
No
1. #include <cstdio> 2. #include <cstring> 3. #include <iostream> 4. using namespace std; 5. int a[100000]={0}; 6. int main() 7. { 8. int n,i,j,t,jw,len; 9. scanf("%d",&n); 10. if(n==0){ 11. printf("1"); 12. return 0; 13. } 14. a[1]=1,len=1; 15. for(i=1;i<=n;i++){ 16. j=1; 17. jw=0; 18. while(j<=len){ 19. a[j]=a[j]*i+jw; 20. if(a[j]>=10){ 21. jw=a[j]/10; 22. a[j]%=10; 23. } 24. else jw=0; 25. j++; 26. } 27. while(jw>0){ 28. a[j]=jw%10; 29. jw/=10; 30. j++; 31. len++; 32. } 33. } 34. for(i=len;i>=1;i--) printf("%d",a[i]); 35. return 0; 36. }