#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 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘