原题链接:[编程入门]阶乘求和
解题思路:
这道题就是按照一般的思路,通过循环来实现一个数的阶乘,再通过循环相加来得到结果,
但是,一开始在DEV中编译通过,但后来通过检查,发现在输入n=19时是一个负数,就说明出错,是所输出的数超出最大限,故将int改为long long 还有要将%d改为%lld,这是最关键的,就是输出有符号64位。
%I64d 在蓝桥杯训练系统中可以通过,但在这里不能,不知道为什么
注意事项:
%d 有符号32位整数
%lld 有符号64位整数
%llx有符号64位16进制整数
%u 无符号32位整数
参考代码:
#include<stdio.h>
int main()
{
long long i,s=1,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s=s*i;
sum=sum+s;
}
printf("%lld",sum);
return 0;
}
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复