山东理工大学ACM平台题答案关于C语言 1098 Lowest Bit

Lowest Bit

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

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.

输入

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.

输出

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

示例输入

26
88
0

示例输出

2
8

最低点

Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

时间限制:1000MS内存限制:65536k有疑问点这里^ _ ^?

题目描述

题目描述

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

给出一个正整数(1 <= < = 100),输出的最低点之一。

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.

例如,给定一个= 26,我们可以写一个以二进制的形式为11010,所以最低点是10,所以输出应为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.

另一个例子是这样的:给定一个= 88,我们可以写一个以二进制的形式为1011000,所以最低点是1000,所以输出应为8。

输入

输入

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

输入的每一行只包含一个整数(1 <= < = 100)。一个包含&quot;0 &quot;表示输入的结束,这是不是输入数据的一部分。

输出

输出

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

每一个的输入,输出一行只包含的最低点。

示例输入

示例输入

26

26

88

88

0示例输出

0示例输出

2

2

8

8

#include <stdio.h>
int main()
{
    int n, r;
    while (scanf("%d", &n)==1 && n){
        r = 1;
        while (n){
            if ((n&1) == 1) break;
            n >>= 1;
            r <<= 1;
        }
        printf("%d\n", r);
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值