解题思路:
先判断输入的n如果等于0,则返回sn=1;否则进入while(i<=n)循环,执行n次。考虑到阶乘可能超过int类型所表示的数据范围,应设long long jie=1,sn=0;
注意事项:
printf("%lld",sn);是输出64位有符号的整数
参考代码:
#include<stdio.h>
int main()
{
int n,i=1;
long long jie=1,sn=0;
scanf("%d",&n);
if(n==0)
{
sn=1;
}
else
{
while(i<=n)
{
jie*=i;
sn+=jie;
i++;
}
}
printf("%lld",sn);
return 0;
}
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:587 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:745 |
数列排序 (C语言代码)浏览:858 |
最长单词 (C语言代码)浏览:1463 |
妹子杀手的故事 (C语言代码)浏览:1290 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:534 |
本人酷爱递归实现很多问题,这里也是浏览:609 |
WU-C语言程序设计教程(第三版)课后习题11.11 (C++代码)(想学链表的可以看看)浏览:1453 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:544 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:627 |