本文共给出3种做法:
1、利用数组,逆序打印
#include <iostream>
using namespace std;
const int N=1001;
void print(int n)
{
int len=0,a[N];
while(n)
{
a[len]=n%2;
n/=2;
len++;
}
for(int i=len-1;i>=0;i--)
{
cout<<a[i];
}
}
int main()
{
int n;
cin>>n;
print(n);
system("pasue");
return 0;
}
2、利用stack(栈)容器
#include <iostream>
#include <stack>
using namespace std;
void print(int n)
{
stack<int> s;
while(n)
{
s.push(n%2);
n/=2;
}
while(!s.empty())
{
cout<<s.top();
s.pop();
}
}
int main()
{
int n;
cin>>n;
print(n);
system("pasue");
return 0;
}
3、递归
#include <iostream>
#include <stack>
using namespace std;
void print(int n)
{
if(n==0) return;
else
{
print(n/2);
cout<<(n%2);
}
}
int main()
{
int n;
cin>>n;
print(n);
system("pasue");
return 0;
}
感谢你的到来!!!