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 这个数….
不知道哪里出问题了,求指点。
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呢,这里溢出了