/*
二进制最后一个1的位置,如果最后一位是1,那么是奇数,
如果最后一位是0,那么是偶数。
相似的分析,如果倒数第2位为1一定是2的倍数
如果倒数第3位是1一定是4的倍数
*/
#include <cstdio>int main()
{int a;while(scanf("%d", &a), a){int s = 1;for(int l = 1; ;l++){s *= 2;if(a % s){printf("%d\n", s/2 );break;}}}return 0;
}
详细解决方案
zoj 2417 Lowest Bit
热度:54 发布时间:2023-12-11 20:53:59.0