我想找到一个非常长的数字的余数。我正在为此编写一个程序,因为我不能直接找到余数,因为它们是大数(在c中)。我怎么能这样做?我必须将更大的数字除以找到余数的数量的限制是500.ie 1到500 我想把这个数字分开:
1234567 = 1 * 10 ^ 6 + 2 * 10 ^ 5 + ...
1234567%×= 1modx * 10 ^ 6modx + 2modx * 10 ^ 5modx ...
我需要比这更好的方法。
答案 0 :(得分:1)
提示: 使用链接列表。将数字动态存储为一组数字。 例如:
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 可以支持的最大范围内。
答案 1 :(得分:0)