zoukankan      html  css  js  c++  java
  • 杭电 1196

    Lowest Bit

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 7776    Accepted Submission(s): 5715


    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
     题意:
    给定一个十进制数字,求转化为二进制后的最后一位
    思路:
    依据位运算能极大地优化程序。求二进制的最低位可依据a&(-a)就能直接求出二进制的最后一位
    代码例如以下:
    <span style="font-size:14px;">#include<stdio.h>
    int main()
    {
    	int n;
    	while(~scanf("%d",&n),n)
    	{
    		printf("%d
    ",n&(-n));
    	}
    	return 0;
    }</span>


  • 相关阅读:
    google 语音识别返回,
    如果到来,会是怎样情况,fuck,
    sql
    阅读《一》
    阅读,
    Codevs 1078 ==Poj 1258 Agri-Net
    洛谷 P3399 丝绸之路
    线段树-代码实现细节与技巧
    Codevs 1371 浴火银河跑运输
    POJ 3267 The Cow Lexicon
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6726845.html
Copyright © 2011-2022 走看看