为什么
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
long long a;
int b[64];
long long ans;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> a;
int cnt = 0;
for(; ; a >>= 1){
cnt++;
if(a & 1) b[cnt] = 1;
else b[cnt] = 0;
if(cnt == 32) break;
}
int x = 0;
for(int i = 17; i <= 32; i++, x++){
ans += b[i] * pow(2, x);
}
for(int i = 1; i <= 16; i++, x++){
ans += b[i] * pow(2, x);
}
cout << ans << endl;
return 0;
}
可以 而
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
long long a;
int b[64];
long long ans;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> a;
int cnt = 1;
for(; cnt == 32; a >>= 1, cnt++){
if(a & 1) b[cnt] = 1;
else b[cnt] = 0;
}
int x = 0;
for(int i = 17; i <= 32; i++, x++){
ans += b[i] * pow(2, x);
}
for(int i = 1; i <= 16; i++, x++){
ans += b[i] * pow(2, x);
}
cout << ans << endl;
return 0;
}
不行?