题目描述
犹如古希腊传说中的亚特兰蒂斯一样,数码世界中也存在一个神奇的王国--比特国,比特国是一个等级森严的国度,而标识比特国中每个人等级的标志就是每个人与生俱来的一个比特号n(0 < n < 2^31-1),而每个人的等级值是指他的比特号在二进制下最低的非0比特位的值,例如一个人的比特号是28,转化为二进制就是11100,那么最低的非0比特位就是4,那么他的等级值就是4。现在你需要设计一个程序去计算比特国中每个人的等级值。
输入
首先是一个整数 t,表示有 t 组测试数据。(t <= 1000)
对于每组测试数据,每行都会有一个32bit正整数n,n如上所述。
对于每组测试数据,每行都会有一个32bit正整数n,n如上所述。
输出
对于每组测试数据,输出占一行,首先应当输出一行”Case #k: ”,k表示第k组测试数据,
然后应该输出对应的结果。
然后应该输出对应的结果。
样例输入
2
28
88
样例输出
Case #1: 4
Case #2: 8
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int T ,j=0;
scanf("%d", &T);
int n;
while(T--){
scanf("%d", &n);
for(int i=0;i<32;i++){
if(n&(1<<i)){
printf("Case #%d: %d\n",++j, 1<<i);
break;
}
}
}
return 0;
}
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int T ,j=0;
scanf("%d", &T);
int n;
while(T--){
scanf("%d", &n);
for(int i=0;i<32;i++){
if(n&(1<<i)){
printf("Case #%d: %d\n",++j, 1<<i);
break;
}
}
}
return 0;
}