【入门】正整数N转换成一个二进制数
***题目描述***
输入一个不大于32767的正整数N,将它转换成一个二进制数。
输入
输入只有一行,包括一个整数n(n<=32767)
输出
输出只有一行.
样例
输入
100
输出
1100100
方法1代码如下:
#include<iostream>
using namespace std;
int weishu(int n)
{
int t=n,result=0;
while(t>0)
{
t=t/2;
result++;
}
return result;
}
int main()
{
int a[100];
int n,i,ans;
cin>>n;
ans=weishu(n);
for(i=1;i<=ans;i++)
{
a[i]=n%2;
n=n/2;
}
for(i=ans;i>=1;i--)
{
cout<<a[i];
}
cout<<endl;
return 0;
}
注:
只要知道十进制转化为2进制的方法,把每一次的余数都放入数组中,然后倒序输出即可。
方法2代码如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,j,count=0,a[100];
scanf("%d",&n);
for(i=1;;i++)
{
a[i]=n%2;
n=n/2;
count++;
if(n==0)
{
break;
}
}
for(j=count;j>=1;j--)
{
printf("%d",a[j]);
}
printf("\n");
return 0;
}
不好意思,之间的有的小问题又修改了一下。