gpt4 book ai didi

c++ - 在 main() 函数外将两个数字相乘会产生未知结果

转载 作者:行者123 更新时间:2023-11-28 06:17:31 26 4
gpt4 key购买 nike

我正在尝试编写一个计算最小公倍数的函数,但是当它乘以两个变量(301337、307829)时,由于某种原因,程序无法在 lcm 函数中将这两个数字相乘。我曾尝试将类型更改为 long long 但这没有任何区别。当我在主函数中乘以 2 个变量时,它运行得很好。谢谢。

int lcm(int a, int b)
{
int l = a * b;
cout << l << endl; // Displays -12790139
int g = gcd(a, b);
cout << g << endl; // works correct
return l/g;
}

int main() {
cout << lcm(301337, 307829) << endl;
return 0;
}

最佳答案

我想这行得通

int lcm(int a, int b)
{
unsigned long long int l = a * b;
cout << l << endl; // Displays 18446744071980538477
int g = gcd(a, b);
cout << g << endl; // works correct
return l/g;
}

int main() {
cout << lcm(301337, 307829) << endl;
return 0;
}

关于c++ - 在 main() 函数外将两个数字相乘会产生未知结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29971679/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com