通过打表找规律就可以做,通过打表发现与(n-1)是2的几次幂有关,打表结果如下:
通过寻得的规律代码如下:
#include<iostream>
using namespace std;
int main(){
int t;
cin >> t;
while(t--){
long long n;
cin >> n;
long long ji = 1;
long long ans = 0;
n--;
while(n/2){
ans += ji;
ji *=2;
n /= 2;
}
cout << ans << endl;
}
return 0;
}