解题思路:
在C语言中没有求阶乘的函数,所以我们可以定义一个求阶乘的函数来求解。并累加。
注意事项:在本题中容易出现数据溢出相关问题,我尝试过double类型和long long int 类型,发现用double类型会出现数据精度不够(在最后几位的数据上与标答不符)的问题。
参考代码:
#include<stdio.h>
long long factorial(int n);
int main(void)
{
int i;
int n;
long long ans=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
ans+=factorial(i);
}
printf("%lld",ans);
return 0;
}
long long factorial(int n)
{
int i;
double ans=1;
for(i=1;i<=n;i++)
ans*=i;
return ans;
}
double来运行的错误
结果:
int 类的正解:
0.0分
0 人评分
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:702 |
母牛的故事 (C语言代码)浏览:712 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:612 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:770 |
C语言训练-计算一个整数N的阶乘 (C语言代码)浏览:986 |
字符串问题 (C语言代码)浏览:1636 |
简单的a+b (C语言代码)浏览:564 |
C语言训练-求PI* (C语言代码)浏览:639 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:942 |
简单的a+b (C语言代码)浏览:674 |