ACM 1179
程序员文章站
2022-03-03 11:35:06
...
输入一个正整数N,求1!+2!+3!+…+N!,即求
提示:由于>10的整数的阶乘非常大,已超出整数的表示范围,
故求阶乘时,需要将变量定义为double类型。
输入 输入一个正整数N
输出 1~N连续阶乘的和,1!+2!+3!+…+N!的和,末尾换行。
样例输入 10
样例输出 4037913
做此题之前需要搞懂阶乘的含义,比如:
1!=1
2!=12
3!=12*3
…
以此类推 ,可以看出阶乘n!的含义则是1~n之间的正整数不断相乘。
弄懂定义就简单了,此题和我之前发的ACM 1178 Blog一个同样的累加思路,看代码把
#include<stdio.h>
int main()
{
double n,d=1,sum=0,i=1; //定义n变量取值,d变量作为单个算术,sum作为总和,i为循环变量
scanf("%lf",&n); //取值n
for(i=1;i<=n;i++) //循环n次
{
d=i*d;
sum=d+sum;
}
printf("%.lf\n",sum); //输出sum值,加'.'代表只取整数部分
return 0;
}
有任何不懂的可以下方评论,觉得还不错的可以点个赞喔