Code Bye

变量溢出,不知道哪里出了问题

long long lcm_naive(int a, int b) {
long long lcm = a * b;
return lcm;
}
int main() {
int a, b;
std::cin >> a >> b;
std::cout << lcm_naive(a, b) << std::endl;
return 0;
}
input:
28851538 1183019
output应该是34131917633222
没超出long long的范围,但返回值是-187468090
将long long换成unsigned long long返回值是unsigned long long的最大值18446744073709551615 这个数….
不知道哪里出问题了,求指点。
解决方案

40

a*b结果可是int呢,这里溢出

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明变量溢出,不知道哪里出了问题