您的位置:首页 > 其它

flip

2013-11-24 20:54 155 查看
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;

const int maxn = 105;
int num1[ maxn ], num2[ maxn ];

void Fun( int n, int a[], int &k ){
k = 0;
while( n ){
a[ k++ ] = n % 2;
n /= 2;
}
}

int main(){
int Case, n, k1, k2, len;
cin >> Case;
while( Case-- ){
cin >> n;
memset( num1, 0, sizeof( num1 ) );
memset( num2, 0, sizeof( num2 ) );
int ans = 0;
Fun( n, num1, k1 );
Fun( n + 1, num2, k2 );
len = max( k1, k2 );
for( int i = 0; i <= len; ++i ){
if( num1[ i ] != num2[ i ] ){
ans++;
}
}
printf( "%d\n", ans );
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  4113