解题思路:首先需要了解一下整型数据类型的取值范围,然后熟练掌握递归发进行求阶乘。
注意事项:相信很多人都对整型数据类型有了解,但是由于平时int使用的次数比较多,忽略了long int的存在,因此导致本题出错。
参考代码:
#include<stdio.h>
//编写函数实现采用递归法实现求阶乘
long fun(int k)
{
if(k==0)
{
return 1;
}
else
{
return k*fun(k-1);
}
}
int main()
{
int i,n;
long Sn; //声明变量Sn保存阶乘的和
Sn=0; //对Sn赋初值为零
scanf("%d",&n); //从键盘接受一个值赋给n
for(i=1;i<=n;i++) //使用for循环求取1!到n!
{
Sn+=fun(i); //调用函数fun来求阶乘并累加
}
printf("%ld",Sn); //输出1!到n!的累加和
return 0;
}
0.0分
2 人评分
汽水瓶 (C语言代码)浏览:596 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:644 |
C语言程序设计教程(第三版)课后习题10.4 (C语言代码)浏览:665 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:1419 |
C语言程序设计教程(第三版)课后习题6.10 (C语言代码)浏览:552 |
WU-整除问题 (C++代码)浏览:608 |
DNA (C语言代码)浏览:745 |
剪刀石头布 (C++代码)浏览:1697 |
青年歌手大奖赛_评委会打分 (C语言代码)浏览:2136 |
A+B for Input-Output Practice (II) (C语言代码)浏览:595 |