簡體   English   中英

從一百萬個整數整數中求模的最后一位; 需要解釋嗎?

[英]Finding last digits with modulo from a million digits int; need an explanation?

假設我有一個隨機的百萬位數= x,這樣:

len(str(x)) = 1000000

通過查看一些解釋,我可以使用x%(10 ** n)查找最后n個數字。 但是我無法確定為什么這樣做。

這樣,如果我想找到x的最后11位數字,我的代碼將是:

x % (10 ** 11)

有人可以幫我一下嗎?

這樣想:

  • 如果要查找數字的最后一位數字,可以將其除以10,除法的其余部分將是數字的最后一位數字。
  • 如果要查找數字的最后兩位數字,可以將其除以100,除法的其余部分將是數字的最后兩位數字。
  • 如果要查找數字的最后3位數字,可以將其除以1000,除法的其余部分將是數字的最后3位數字。
  • 如果要查找數字的最后n位數字,可以將其除以10 ** n,除法的其余部分將是數字的最后n位數字。 用數學術語來說,數字x的最后n數字由下式給出:

     x % (10 ** n) 

如果您不知道,模運算符(%)將兩個數相除返回余數

%返回除法后的余數,就像在小學學習長除法時一樣。 因此7%3 = 1 我猜您知道**是冪運算,所以10**3 = 1000 您的示例x % (10**11)x除以10**11並告訴您余數。 一旦您拿走了10**11的最大可能倍數,換句話說就是最后n數字,那一定是剩下的數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM