java - 如何求余数?

标签 java c algorithm math numbers

我想找到很长的数字的余数。我正在为此编写一个程序,由于它们是很大的数字(在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/

相关文章:

Java 到 Coldfusion SVG 到 PDF

java - 无法使用 XSD 架构验证 XML

java - 物质外观和感觉不起作用

java - 使用oracle在hibernate中自动递增

c++ - 如何通过malloc为队列数组分配内存?

java - 如何更高效地编写递归左移数组算法

c - 产生荒谬的输出

c - 是否有 C 函数的时间(成本)表?

c++ - 更快的图像镜像算法

algorithm - 递推关系中是否可能存在负递推项?