1173:阶乘和

简介: 1173:阶乘和

1173:阶乘和

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。

输入正整数n,输出计算结果S。

【输入】

一个正整数n。

【输出】

计算结果S。

【输入样例】

5

【输出样例】

153

【来源】

No

1. #include <cstdio>
2. #include <cstring>
3. #include <iostream>
4. using namespace std;
5. int a[100000]={0};
6. int b[100000]={0};
7. int main()
8. {
9.  int n,i,j,t,jw,len,len2;
10.   scanf("%d",&n);
11.   if(n==0){
12.     printf("1");
13.     return 0;
14.   }
15.   a[1]=1,len=1; 
16.   for(i=1;i<=n;i++){
17.     j=1;
18.     jw=0;
19.     while(j<=len){
20.       a[j]=a[j]*i+jw;
21.       if(a[j]>=10){
22.         jw=a[j]/10;
23.         a[j]%=10;
24.       }
25.       else jw=0;
26.       j++;
27.     }
28.     while(jw>0){
29.       a[j]=jw%10;
30.       jw/=10;
31.       j++;
32.       len++;
33.     }
34.     len2=len;
35.     for(j=1;j<=len;j++){
36.       b[j]=b[j]+a[j]+jw;
37.       if(b[j]>=10){
38.         jw=b[j]/10;
39.         b[j]%=10;
40.       }
41.       else jw=0;
42.     }
43.     if(jw>0){
44.       b[j]=jw;
45.       len2++;
46.     } 
47.   }
48.   for(i=len2;i>=1;i--) printf("%d",b[i]);
49.   return 0;
50.  }

 


相关文章
|
16天前
|
机器学习/深度学习
阶乘
【10月更文挑战第20天】阶乘。
13 4
|
6月前
递归阶乘详解
递归阶乘详解
43 1
|
6月前
|
算法 C++
C++求阶乘的深入探索
C++求阶乘的深入探索
172 0
|
6月前
|
C语言
求阶乘之和
【1月更文挑战第18天】C语言实例——求阶乘之和。
38 3
1172:求10000以内n的阶乘
1172:求10000以内n的阶乘
159 0
|
6月前
|
C语言
递归求阶乘
【1月更文挑战第18天】C语言实例——递归求阶乘。
35 1
计算n个阶乘之和
方法一: 错误情况截图: 正确情况截图: 方法二: 运行代码: 运行结果截图:
61 0
计算n个阶乘之和
7-5 计算阶乘和
7-5 计算阶乘和 对于给定的正整数N,需要你计算 S=1!+2!+3!+...+N!。
122 0