思路:首先求出1到n的二进制表示,然后通过移位运算符进行拼接。拼接后的结果直接返回就是对应着的十进制,
class Solution {
public:
int concatenatedBinary(int n) {
long ans=1;
for(int i=2;i<=n;i++){
int j=i;
while(j!=0){
j/=2;
ans=ans<<1;
}
ans=(ans+i)%((int)pow(10,9) + 7);
}
return (int)ans;
}
};