admin管理员组文章数量:1794759
C语言入门——求1到n阶乘之和(1≤n≤20)
C语言入门——求1到n阶乘之和(1≤n≤20) 一、问题
Problem Description
求1到n的阶乘之和
Input
输入一个正整数n (1 ≤ n ≤ 20)
Output
输出一个数,表示1到n的阶乘之和
Sample Input
10
Sample Output
4037913
二、分析既然是求阶乘之和的,那么可以得到
核心突破点有:阶乘 求和
1️⃣阶乘部分:
一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。
具体的大家可以看一下个人所写的这篇文章:
C语言入门—求n的阶乘
2️⃣求和部分:
借助循环进行实现,求和部分就是那前一项的阶乘加后一项阶乘,依次加直到循环结束。
关于这道题还需要注意的是数据范围,数据类型的范围如果过小会出现溢出的情况(题目中要求最大能实现到1到20的阶乘之和,因此需要选择合适的数据类型)。
int,long(long int),long long(long long int)的数据范围如下:
int -2147483648~2147483647 long -2147483648~2147483647 long long的最大值:9223372036854775807 long long的最小值:-9223372036854775808
在了解了上述部分之后,就可以用代码实现了,如果你觉得自己可以实现了,那么可以先尝试以下,再看下面代码进行检查,
三、实现 #include <stdio.h> int main() { int n, i; long long fact = 1, sum = 0; scanf("%d", &n); //借助for循环实现阶乘求和 for (i = 1; i <= n; i++) { fact *= i; sum += fact; } printf("%lld\\n", sum); return 0; }测试样例:10
10 4037913 -------------------------------- Process exited after 0.8705 seconds with return value 0 请按任意键继续. . .关于1-20阶乘之和的问题先说的这里,希望这篇文章能对你有所帮助!
作者:code_流苏(CSDN) 喜欢的话,关注一下,点个赞吧! 欢迎评论交流,如有错误,还请指正!
版权声明:本文标题:C语言入门——求1到n阶乘之和(1≤n≤20) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686650890a90651.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论