我想找到很长的数字的余数。我正在为此编写一个程序,由于它们是很大的数字(在c中),所以我无法直接找到余数。我该怎么做?我必须除以较大的数字才能找到余数的数字限制是 500,即 1 到 500 我想到了这样划分数字:
1234567=1*10^6+2*10^5+...
1234567%x=1modx*10^6modx+2modx*10^5modx...
我需要比这更好的方法。
最佳答案
提示: 使用链接列表。动态地将数字存储为一组数字。 例如:
112233445566778899001122 => 11223344 55667788 99001122
现在考虑单个单元并从左到右开始。找到提醒并操作它以添加到下一组并继续。
现在实现非常简单:)
编辑:
112233445566778899001122/6 => 11223344 55667788 99001122/6
11223344/6 =>2
2*100000000 + 55667788 = 255667788
255667788/6 => 0
0*100000000 + 99001122 = 99001122
99001122/6=>0
So the reminder is 0.
请记住,操纵后的单个单位应低于int可以支持的最大范围。
关于java - 如何求余数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26315089/