题目描述
电脑只能存储二进制数字,现在给定一个十进制数字n,模拟将其转换成对应的二进制数的过程:对于输入的任意正整数n,输出若干行“shang:* yu:*”的形式,表示其转换过程。最后显示这个二进制数。
输入格式
正整数n
输出格式
输出其转为二进制的过程和最终的二进制数字(具体见样例)。
样例
输入#1
13
Copy
输出#1
shang:6 yu:1
shang:3 yu:0
shang:1 yu:1
shang:0 yu:1
1101
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, x;
cin >> n;
char c;
string s;
while(n != 0)
{
x = n % 2;
c = x + '0';
s = c + s;
n /= 2;
cout << "shang:" << n << " yu:" << x << '\n';
}
if(s == "") cout << 0 << '\n';
else cout << s << '\n';
}