我怎样才能乘以真正的大数字c ++

Fre*_*Roy 5 c++ int multiplying

我有以下代码

      int i, a, z;
i = 2343243443;
a = 5464354324324324;
z = i * a;
cout << z << endl;
Run Code Online (Sandbox Code Playgroud)

当它们相乘时,它给出了-1431223188,这不是答案.我怎样才能让它给我正确的答案?

Jar*_*d42 5

结果溢出int(也std::uint64_t)

你必须使用一些BigInt库.


Shr*_*n40 4

正如 Jarod42 所建议的那样,完全没问题,但我不确定是否会发生溢出?

尝试将数字的每一位存储在一个数组中,然后相乘。您一定会得到正确的答案。

有关如何使用数组进行乘法的更多详细信息,请关注此帖子http://discuss.codechef.com/questions/7349/computing-factorials-of-a-huge-number-in-cc-a-tutorial