总是显示Runtime Error(INTEGER_DIVIDE_BY_ZERO
答案:1 悬赏:50
解决时间 2021-01-26 13:43
- 提问者网友:萌卜娃娃
- 2021-01-25 20:10
总是显示Runtime Error(INTEGER_DIVIDE_BY_ZERO
最佳答案
- 二级知识专家网友:不想翻身的咸鱼
- 2021-01-25 21:08
INTEGER_DIVIDE_BY_ZERO是除零错。
分析你的程序,只有第36行有除法,
answer = s1 / s2;按照你的程序逻辑,s2一定不为零,
但是你忽略了整数溢出的问题,溢出就会出错了。
因为int只能保存-2^31~+2^31-1范围内的数,
超过就会有问题。
n!是很容易超过int 的保存范围的。比如,int就不能保存70!的结果。
现在给你一个样例,是我精心设计的让你出现INTEGER_DIVIDE_BY_ZERO错误的:
70
12 12 12 12 12 12 12 12
11 11 11 11 11 11 11 11 11 11
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
9 9 9 9 9 9 9 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
5 5 3 3 2 2
所以说,
这题应该是数论,有更好的办法解决的,不是暴力计算的。
分析你的程序,只有第36行有除法,
answer = s1 / s2;按照你的程序逻辑,s2一定不为零,
但是你忽略了整数溢出的问题,溢出就会出错了。
因为int只能保存-2^31~+2^31-1范围内的数,
超过就会有问题。
n!是很容易超过int 的保存范围的。比如,int就不能保存70!的结果。
现在给你一个样例,是我精心设计的让你出现INTEGER_DIVIDE_BY_ZERO错误的:
70
12 12 12 12 12 12 12 12
11 11 11 11 11 11 11 11 11 11
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
9 9 9 9 9 9 9 9 9 9 9 9 9 9
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
5 5 3 3 2 2
所以说,
这题应该是数论,有更好的办法解决的,不是暴力计算的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯