【发布时间】:2020-12-08 01:03:09
【问题描述】:
在这里,我为这个问题贡献了 Java 解决方案。 连续二进制数的串联: 给定一个整数 n,返回将 1 到 n 的二进制表示按顺序连接形成的二进制字符串的十进制值,取模 10^9 + 7。
class Solution {
public int concatenatedBinary(int n) {
long sum = 0;
for(int i = 1; i <= n; i++){
sum = ((sum << Integer.toBinaryString(i).length()) + i) % 1000000007;
}
return (int) sum;
}
}
现在我有一个疑问,那就是当我们在 for 循环中的每一步进行调制时。直到 1000000007 才会影响结果,但在那之后,它会改变 sum 变量,并且这个循环将重复。现在,为什么这个模数不会影响整体结果?提前致谢。
【问题讨论】:
-
“现在,为什么这个模数不会影响整体结果?”是什么意思?
标签: java data-structures modulo