码迷,mamicode.com
首页 > 其他好文 > 详细

Lowest Bit------HDOJ杭电1196(想法很重要)

时间:2014-05-05 13:22:39      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:c   acm   编程   hdoj   

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
 
二进制的原理就是除二余一的时候出现1,所以呀!
直接循环取二的模,如果为0则记录sum加一,否则break;
然后就是循环乘二,也可以在判断里面直接乘二
下面贴下AC代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    int i,j,k;
    int t,n,m;
    int liu[106];
    while(scanf("%d",&n)!=EOF,n)
    {
        m=0;
        while(1)
        {
            if(n%2==0)
            {
                m++;
                n/=2;
            }
            else break;
        }
        t=1;
        for(i=1;i<=m;i++)
            t*=2;
        printf("%d\n",t);
    }
    return 0;
}

写代码能力有限,如有神牛发现BUG,还请指出,不胜感激!

Lowest Bit------HDOJ杭电1196(想法很重要),布布扣,bubuko.com

Lowest Bit------HDOJ杭电1196(想法很重要)

标签:c   acm   编程   hdoj   

原文地址:http://blog.csdn.net/u014231159/article/details/24906411

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!