【发布时间】:2016-01-07 16:15:56
【问题描述】:
我无法检测溢出。 我应该制作一个读取 int c 的程序,然后是 int n 对应该相乘的数字。在数字相乘后,您需要检查它是否是整数溢出。如果不是溢出,打印相乘的数字。
在 C++ 中;
这是一个例子:
输入:3 2147483647 和 2147483647
18446744073709551615 和 2
666013 和 1
输出:
4611686014132420609
Overflow!
666013
fin>>c;
for (i=1;i<=c;i++,p=0){
fin>>a>>b;
p=a*b;
if (p/b==a)
fout<<p<<"\n";
else
fout<<"Overflow"<<"\n";
}
return 0;
}
【问题讨论】:
-
到目前为止你做了什么?由于措辞,您的任务似乎是一个技巧。即使您在操作 之后检查溢出,也不能使用结果来检查它。您只能使用操作数进行检查。
-
不要在 cmets 中发布代码。将您的代码放入您的问题中。还要描述你的代码如何表现以及你期望它如何表现..
-
只要结果好,我在哪里检查溢出都没有关系
标签: c++ integer-overflow