hdu 1196 Lowest Bit(水题)

简介: hdu 1196 Lowest Bit(水题)

Problem Description

Given an positive integer A (1 <= A <= 100), output the lowest bit of A.


For example, given A = 26, we can write A in binary form as 11010, so the lowest bit of A is 10, so the output should be 2.


Another example goes like this: given A = 88, we can write A in binary form as 1011000, so the lowest bit of A is 1000, so the output should be 8.

 

Input

Each line of input contains only an integer A (1 <= A <= 100). A line containing "0" indicates the end of input, and this line is not a part of the input data.

 

Output

For each A in the input, output a line containing only its lowest bit.

 

Sample Input

26 88 0

 

Sample Output

2 8

 

Author

SHI, Xiaohan

 

Source

Zhejiang University Local Contest 2005

 

代码如下:

#include<stdio.h>
int p(int k)
{
int ans=1,d=2;
while(k!=0)
{
if(k%2==1)
ans=ans*d;
k=k/2;
d=d*d;
}
return ans;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF&&n)
{
    int i=0;
    while(1)
    {
        if(n%2==0) {i++; n/=2;}
        else break;
    }
    //printf("i=%d n=%d\n",i,n);
    printf("%d\n",p(i));
}
return 0;
}
目录
相关文章
|
Java
hdu1016 Prime Ring Problem【素数环问题(经典dfs)】
hdu1016 Prime Ring Problem【素数环问题(经典dfs)】
49 0
codeforces 339 D.Xenia and Bit Operations(线段树)
输入n,m表示有2^n个数和m个更新,每次更新只把p位置的值改成b,然后输出整个序列运算后的值,而这个运算就比较复杂了, 最下面一层两个数字之间或运算得到原来数目一半的数字,然后两个之间异或运算,得到一半,再或再异或………………,一直到得到一个数字,这个数字就是要求的结果。
53 0
|
开发框架 .NET
poj 3468 A Simple Problem with Integers线段树区间修改
题目意思很简单,有N个数,Q个操作, Q l r 表示查询从l到r 的和,C l r v 表示将从l到r 的值加上v,明显的线段树,不知道线段树的人肯定暴力,肯定超时,哈哈!!
33 0
HDU-1097,A hard puzzle(快速幂)
HDU-1097,A hard puzzle(快速幂)
HDOJ/HDU 2700 Parity(奇偶判断~)
HDOJ/HDU 2700 Parity(奇偶判断~)
141 0
ZOJ Problem Set - 3758 素数
ZOJ Problem Set - 3758 素数
100 0