[英]Count of numbers between A and B (inclusive) that have sum of digits equal to S
[英]AND of all natural numbers lying between A and B both inclusive
我們需要計算介於A和B之間的所有自然數(包括兩者在內)的按位與。我在一個網站上遇到了這個問題,這是他們使用的方法,但我不明白該方法。誰能解釋這個用一個例子更清楚?
為了解決這個問題,我們只需要關注每個功率2的出現,結果證明是周期性的。 現在,對於每個2 ^ i(周期的長度將是2 ^(i + 1),其中2個^ i零后跟相同數量的1),我們只需要計算給定間隔中1是否保持不變,就可以完成通過簡單的算術。 如果是這樣,答案中將出現2的冪,否則就沒有。
讓我們用3位進行計數(無符號)以首先可視化一些數字:
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
如果查看這些列,可以看到最低位以1的周期交替,下一位以2的周期,然后是4,而第n個最低位以2 ^(n-1的周期)交替。 )。
一旦位為0,就始終為0(因為0等於0)。
你也可以說該n
個位僅1
如果n
個的位A
和B
是1
和d < 2^(n-1)
換句話說,只有在開始和結束時為1,並且由於循環周期太大而沒有時間在其間更改為0的時間,bit才會為1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.