我有以下代码
int i, a, z;
i = 2343243443;
a = 5464354324324324;
z = i * a;
cout << z << endl;
当这些相乘时,它给了我 -1431223188 这不是答案。我怎样才能让它给我正确的答案?
原文由 Fred Roy 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有以下代码
int i, a, z;
i = 2343243443;
a = 5464354324324324;
z = i * a;
cout << z << endl;
当这些相乘时,它给了我 -1431223188 这不是答案。我怎样才能让它给我正确的答案?
原文由 Fred Roy 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
正如 Jarod42 建议的那样,完全可以,但我不确定是否会发生溢出?
尝试将数字的每个数字存储在一个数组中,然后相乘。你一定会得到正确的答案。
有关如何使用数组进行乘法的更多详细信息,请遵循此帖子 http://discuss.codechef.com/questions/7349/computing-factorials-of-a-huge-number-in-cc-a-tutorial