1080: 【基础】挑战赛第三题——二进制中的1
时间限制: 1 Sec 内存限制: 16 MB
提交: 4324 解决: 2513
[提交] [状态] [讨论版] [命题人:外部导入]
题目描述
给定一个正整数N,请找出N转化为二进制后,其中所有1的位置。二进制的最低位(最右侧)为第0位。
输入
输入中包含一个正整数N ( 1 <= N <= 1000000)
输出
输出N转换为二进制后,所有1的位置,每行一个1的位置。
样例输入
13
样例输出
0
2
3
来源/分类
2009年新年挑战赛第三题
题解如下
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
int ar[9999];
int position=0;
for(int i=0; ;i++)
{
if(n!=0)
{
ar[position++]=n%2;
n/=2;
}
else
break;
}
for(int i=0;i<position;i++)
{
if(ar[i]==1)
printf("%d ",i);
}
return 0;
}