Description
输入一个不大于32767的正整数N,将它转换成一个二进制数
Input
输入只有一行,包括一个整数n(n<=32767)
Output
输出只有一行,包含一个二进制数,数字之间以空格分开
Samples
输入数据 1
100
Copy
输出数据 1
1 1 0 0 1 0 0
思路
这道题是一道模板题,不是很难。
代码见下:
#include<bits/stdc++.h>
using namespace std;
int n,bak;
int main(){
cin>>n;
if(n==1||n==0){
cout<<n;
return 0;
}
int sum=(log(n)/log(2));
int j=1<<sum;
for(int i=0;i<=sum;i++){
if(n>=j){
cout<<1,n=n-j;
if(i!=sum) cout<<" ";
}
else{
cout<<0;
if(i!=sum) cout<<" ";
}
j/=2;
}
cout<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n,bak;
int main(){
cin>>n;
if(n==1||n==0){
cout<<n;
return 0;
}
int sum=(log(n)/log(2));
int j=1<<sum;
for(int i=0;i<=sum;i++){
if(n>=j){
cout<<1,n=n-j;
if(i!=sum) cout<<" ";
}
else{
cout<<0;
if(i!=sum) cout<<" ";
}
j/=2;
}
cout<<endl;
return 0;
}