杭电ACM1019题求教 为什么老是wrong answer?? 明明答案是对的啊。。
发布网友
发布时间:2024-10-22 19:39
我来回答
共1个回答
热心网友
时间:2024-10-23 12:28
All integers will be positive and lie within the range of a 32-bit
integer.
说明了a和b都是32位的数据
int LCM(int a,int b)
{
int t,s; //s的最大值只可能是(2^31) - 1
s=a*b; //这里可能会溢出,
//因为如果a和b都是 (2^31) - 1这个数值,那么他们两个相乘的话,
//结果会大于2^31 - 1, 一定会溢出, 溢出意味着出错
if(a<b)
{
t=a;
a=b;
b=t;
}
ps:若有不明白的地方,可以追问