luogu#B3972. [语言月赛 202405] 二进制
[语言月赛 202405] 二进制
题目描述
在介绍十进制转二进制的篇目中,我们总会看到这样的方法:
- 求出这个数字除以 的商和余数,然后将余数写在右侧,用商替换原来的数字;
- 重复以上过程直到这个数字变为 ;
- 最后将右侧的所有余数倒序排列,得到的就是原数字的二进制形式。
小 S 也在学习二进制,不过她很懒,不想计算那么多次除法。于是她找到了你,希望你能为她写一个程序,帮助她得到上述过程中所有的商和余数。
输入格式
一行,一个正整数 ,表示她想要转成二进制的数字。
输出格式
输出若干行,每一行两个数字 和 ,表示第 次除法得到的商和余数。你应该保证 是 或 。
9
4 1
2 0
1 0
0 1
22
11 0
5 1
2 1
1 0
0 1
1
0 1
提示
样例 1 解释
首先,,所以第一行输出 4 1
,并令 变为 ;
然后,,所以第二行输出 2 0
,并令 变为 ;
接着,,所以第三行输出 1 0
,并令 变为 ;
最后,,所以第四行输出 0 1
,并令 变为 。过程结束。
样例 2 解释
首先,,所以第一行输出 11 0
,并令 变为 ;
然后,,所以第二行输出 5 1
,并令 变为 ;
接着,,所以第三行输出 2 1
,并令 变为 ;
再然后,,所以第四行输出 1 0
,并令 变为 ;
最后,,所以第五行输出 0 1
,并令 变为 。过程结束。
数据范围
对于前 的数据,保证 为若干个 的乘积,且 ;
对于另 的数据,保证除法最多只进行 次;
对于 的数据,保证 。