http://acm.hdu.edu.cn/showproblem.php?pid=1196
输入一个十进制数,输出二进制中最后一个不是0的数所代表的数,也就是
Lowest Bit
利用除k取余的方式,运行到第一1时就可以输出了
View Code
1 #include<stdio.h> 2 int pow(int a,int b) 3 { 4 int i,ans=1; 5 for(i=0;i<b;i++) 6 ans*=a; 7 return ans; 8 } 9 int main() 10 { 11 int t,a,i; 12 while(scanf("%d",&a)&&a) 13 { 14 i=0; 15 while(a%2==0) 16 { 17 a/=2; 18 i++; 19 } 20 printf("%d\n",pow(2,i)); 21 } 22 return 0; 23 }