小编kar*_*hik的帖子

通过连接前 n 个自然数的二进制表示形式形成的数字的十进制值

给定一个数n,找出通过连接前n 个自然数的二进制表示形式形成的数字的十进制值。
打印答案模 10^9+7。

此外,n可以大到 10^9,因此需要对数时间方法。

例如:n = 4,答案 =220

解释:数字形成= 11011100( 1=1, 2=10, 3=11, 4=100)。11011100= 的十进制值"220"

我在下面使用的代码仅适用于第一个整数N<=15

    String input = "";
    for(int i = 1;i<=n;i++) {
        input += (Integer.toBinaryString(i));
    }
    return Integer.parseInt(input,2);
Run Code Online (Sandbox Code Playgroud)

java math binary mod

2
推荐指数
2
解决办法
2530
查看次数

标签 统计

binary ×1

java ×1

math ×1

mod ×1