qiuqiuerchibaobaoo 2022-10-20 21:27 采纳率: 80.8%
浏览 28
已结题

关于#for#的问题,如何解决?

#include<stdio.h>
int main()
{
int i,j,n,p,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
p=1;
for(j=1;j<=i;j++){
p=p*j;
}
sum=sum+p;
}
printf(%d",sum);
return 0;
}
输入20,正确结果应该是2561327494111820313,但这里输出的确是268040729,这是为什么?
这里不是求1!+2!+3!+到n!的吗?

  • 写回答

3条回答 默认 最新

  • 麦浪朵朵 2022-10-20 21:52
    关注

    int型被分配的是4个字节,32个Bite位,存储范围是-2^31到2^31-1,明显超出范围了,用long long型和unsigned long long型都行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月29日
  • 已采纳回答 10月21日
  • 修改了问题 10月20日
  • 创建了问题 10月20日

悬赏问题

  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link
  • ¥15 关于某款2.13寸墨水屏的问题
  • ¥15 obsidian的中文层级自动编号
  • ¥15 同一个网口一个电脑连接有网,另一个电脑连接没网
  • ¥15 神经网络模型一直不能上GPU
  • ¥15 pyqt怎么把滑块和输入框相互绑定,求解决!