欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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!=1
2*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;
}

有任何不懂的可以下方评论,觉得还不错的可以点个赞喔

相关标签: ACM