HDU 1390 Binary Numbers
2016-08-14 23:58
393 查看
Binary Numbers
Problem Description
Given a positive integer n, find the positions of all 1's in its binary representation. The position of the least significant bit is 0.Example
The positions of 1's in the binary representation of 13 are 0, 2, 3.
Task
Write a program which for each data set:
reads a positive integer n,
computes the positions of 1's in the binary representation of n,
writes the result.
[align=left]Input[/align]
The first line of the input contains exactly one positive integer d equal to the number of data sets, 1 <= d <= 10. The data sets follow.
Each data set consists of exactly one line containing exactly one integer n, 1 <= n <= 10^6.
[align=left]Output[/align]
The output should consists of exactly d lines, one line for each data set.
Line i, 1 <= i <= d, should contain increasing sequence of integers separated by single spaces - the positions of 1's in the binary representation of the i-th input number.
[align=left]Sample Input[/align]
1
13
[align=left]Sample Output[/align]
0 2 3
题意:给一个数,把它二进制所有的1的位置按顺序输出来。
其实不用转换二进制,直接位运算,因为位运算本来就是在二进制基础上操作的,左右移动去确定最后一位的值。
#include<stdio.h>
#include<string.h>
int main()
{
int t,n,i,j;
int a[100];
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int e=0,f=0;
while(n)
{
if(n>>1<<1!=n)
{
if(!f)
{
printf("%d",e);
f=1;
}
else
printf(" %d",e);
}
n>>=1;
e++;
}
printf("\n");
}
return 0;
}
相关文章推荐
- 简单的四则运算
- 数的奇偶性
- ACMer博客瀑布流分析
- ACM程序设计大赛题目分类
- 2015年acm国内排名
- 计算字符串最后一个单词长度
- ACM网址
- 1272 小希的迷宫
- 1272 小希的迷宫
- hdu 1250 大数相加并用数组储存
- 矩阵的乘法操作
- 蚂蚁爬行问题
- 蚂蚁爬行问题
- 求两个数的最大公约数【ACM基础题】
- 打印出二进制中所有1的位置
- 杭电题目---一只小蜜蜂
- HDOJ 1002 A + B Problem II (Big Numbers Addition)
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207
- 初学ACM - 组合数学基础题目PKU 1833
- 【HDU 5366】The mook jong 详解