Math 如何计算两个int64数与另一个int64数相乘的结果?

Math 如何计算两个int64数与另一个int64数相乘的结果?,math,modulus,int64,Math,Modulus,Int64,设a、b和c为长(int64)数,如何计算(a*b)%c?这里的问题是不能乘法(a%c)*(b%c),因为它不适合int64变量。那么,我们能做些什么呢 P>只是有帮助,我在使用C++。 < p>你可以使用任意的精确库,这样就可以保证你永远不会溢出你的数值类型。 或者确保乘法运算不会溢出类型。如果不了解更多关于你的意见,我真的无法推测做这件事的好方法 或者非常适用于您的任务。FWIW,%是余数运算符,而不是模数。你真的需要模还是(a*b)>=0&&c>0总是真的?在建议的副本中,问题的可能副本

设a、b和c为长(int64)数,如何计算(a*b)%c?这里的问题是不能乘法(a%c)*(b%c),因为它不适合int64变量。那么,我们能做些什么呢


<> P>只是有帮助,我在使用C++。

< p>你可以使用任意的精确库,这样就可以保证你永远不会溢出你的数值类型。 或者确保乘法运算不会溢出类型。如果不了解更多关于你的意见,我真的无法推测做这件事的好方法


或者非常适用于您的任务。

FWIW,
%
是余数运算符,而不是模数。你真的需要模还是
(a*b)>=0&&c>0
总是真的?在建议的副本中,问题的可能副本看起来并不完全相同,但这是同一个问题,大模的模乘。