Concatenation of Consecutive Binary Numbers
给一个数字n, 求[1,n]的所有数变成二进制后, 连接起来的数的十进制表示, 需要取模10e9+7后的数字.
这个题我自己看了下答案, 里面居然还有用逆元求等比数列和的做法, 我还在研究中.
class Solution {
public int concatenatedBinary(int n) {
int MOD = 1000000000+7;
int res = 0;
for(int i = 1; i <= n; i++) {
String s = Integer.toBinaryString(i);
for(int j = 0; j < s.length(); j++) {
res = (res * 2 + (s.charAt(j) == '0'? 0 : 1)) % MOD;
}
}
return res;
}
}