如何找到A和B的A%B是非常大的数字(存储在字符串中)

时间:2018-11-18 00:02:32

标签: algorithm modulus mod

如果我有两个数字A和B,并且我想计算A和B的A%B非常大(最大为10 ^ 100),两者都存储在字符串中,我该如何实现?

2 个答案:

答案 0 :(得分:1)

10 ^ 100实际上并没有那么大,因此您可以使用Python之类的语言,该语言对长整数的大小没有明确定义的限制。

如果只想进行一次计算,则可以使用here之类的大数计算器。

答案 1 :(得分:1)

如果您想解决这个问题,可以直接在字符串表示形式上实现除法算法。

两个数字相加并不大(从右至左,将ASCII值相加并减去0;必要时进行进位)。减法相似。而且两个数字的比较也非常相似。

数字与数字的乘积也是可以管理的(从右到左,将ASCII->转换为数字,执行乘法并将最右边的数字转换为ASCII;进位可以更大,但可以容纳一个整数)。

关键操作是:给定一个除数和一个除数,找到商的最左位数。

例如

3452 : 27

27在34中适合一次,因此第一个数字为1。现在减去并得到下一个数字

 3452
-27
= 752

27在75中适合2次,并且

 752
-54
=212

最后,27个在212中合计7次,

 212
-189
= 23

剩下的。