在 Python 中查找连续二进制数连接的程序

假设我们有一个数字 n,我们必须通过将 1 到 n 的二进制表示依次连接来找到二进制字符串的十进制值,如果答案太大,则返回答案模 10^9 + 7。

因此,如果输入像 n = 4,那么输出将是 220,因为通过将二进制表示从 1 连接到 4 将是“1”+“10”+“11”+“100”=110111000,这是二进制代表 220。

示例

让我们看看以下实现以获得更好的理解 -

def solve(n):

   ans = 1

   m = (10**9+7)

   for i in range(2,n+1):

      ans = ans<<i.bit_length()

      ans = (ans+i) % m

   return ans

n = 4

print(solve(n))

输入

4
输出结果
220

以上是 在 Python 中查找连续二进制数连接的程序 的全部内容, 来源链接: utcz.com/z/362058.html

回到顶部