假设我有一个随机的百万位数= x,这样:
len(str(x)) = 1000000
通过查看一些解释,我可以使用x%(10 ** n)来查找最后n位数。但我无法理解为什么会这样有效。
如果我想查找x的最后11位数,我的代码将是:
x % (10 ** 11)
有人可以为我解释一下吗?
答案 0 :(得分:4)
这样想:
如果要查找数字的最后 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
位数,这必须是剩下的数字。