#include<stdio.h>
int main()
{
int i,n,item;
scanf("%d",&n);
double sum;
if(n<0){
return 0;
}
sum=0.0;
for(i=1;i<=n;i++){
item=1;
for(int j=1;j<=i;j++){
item=item*j;
}
sum=sum+item;
}
printf("%.0f",sum);
}
用嵌套循环求阶乘,为啥输入小一点的数是对的,到了十几就错了呢……
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- CSDN专家-sinJack 2021-09-02 15:33关注
因为数据类型有范围的。换成long long 类型。
#include<stdio.h> int main() { int i,n; long long item; scanf("%d",&n); long long sum; if(n<0){ return 0; } for(i=1;i<=n;i++){ item=1; for(int j=1;j<=i;j++){ item=item*j; } sum=sum+item; } printf("%lld",sum); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于logstash转发日志时发生的部分内容丢失问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 如何用python向钉钉机器人发送可以放大的图片?