使用来自百万位int的模数查找最后一位数字;需要解释?

时间:2015-02-07 04:24:30

标签: python modulo counting largenumber

假设我有一个随机的百万位数= x,这样:

len(str(x)) = 1000000

通过查看一些解释,我可以使用x%(10 ** n)来查找最后n位数。但我无法理解为什么会这样有效。

如果我想查找x的最后11位数,我的代码将是:

x % (10 ** 11)

有人可以为我解释一下吗?

2 个答案:

答案 0 :(得分:4)

这样想:

  • 如果你想找到一个数字的最后一位数字,你可以将它除以10,而除法的其余部分将是该数字的最后一位数。
  • 如果您想查找某个数字的最后2位数字,可以将其除以100,其余部分将是该数字的最后2位数。
  • 如果你想找到一个数字的最后3位数字,你可以将它除以1000,而除法的其余部分将是该数字的最后3位数。
  • 如果要查找数字的最后 n 位,可以将其除以10 ** n,除法的其余部分将是最后一个 n 数字的数字。在数学术语中,数字n的最后x位数由下式给出:

    x % (10 ** n)
    

如果您不知道,模运算符(%)除以两个数字,返回余数

答案 1 :(得分:1)

%会在分组后返回剩余部分,就像在小学时学习长分区一样。所以7%3 = 1。我想你知道**是取幂,所以10**3 = 1000。您的示例x % (10**11)x除以10**11并告诉您其余部分。一旦取走10**11的最大可能倍数,换句话说就是最后n位数,这必须是剩下的数字。