标签:style blog class code java tar javascript color get int string
贴这个题是因为看题解有更简单的方法, 我做的时候是直接算的, 也很简单。
贴一下题解吧:
如果一个整数不等于 0,那么该整数的二进制表示中至少有一位是 1。
这个题结果可以直接输出 x - (x&(x-1));
因为x-1 之后二进制下,就是最右边的1变成了0, 最右边的1的 右边所有的0变成了1, 不影响最左边。
我的代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 using namespace std; 6 7 int main() 8 { 9 int t, n, cnt, x, ca = 1, ans; 10 while(~scanf("%d", &t)) 11 { 12 if(t==0) break; 13 printf("Answer to case%d:\n", ca++); 14 while(t--) 15 { 16 scanf("%d", &n); 17 cnt = 0; 18 while(n) 19 { 20 x = n%2; 21 n /= 2; 22 if(x==1) 23 break; 24 cnt++; 25 } 26 ans = double(pow(2, cnt)); 27 printf("%d\n", ans); 28 } 29 cout<<endl; 30 } 31 return 0; 32 }
sdut 2841 Bit Problem (水题),布布扣,bubuko.com
标签:style blog class code java tar javascript color get int string
原文地址:http://www.cnblogs.com/bfshm/p/3703312.html