描述
在介绍十进制转A(2≤A≤16)进制的篇目中,我们总会看到这样的方法:
求出这个数字除以 A 的商和余数,然后将余数写在右侧,用商替换原来的数字;
重复以上过程直到这个数字变为 0;
最后将右侧的所有余数倒序排列,得到的就是原数字的A进制形式。
余数如果大于等于10,需要使用字母表示(10 -> A, 11 -> B, …)
小 S 也在学习A进制,不过她很懒,不想计算那么多次除法。于是她找到了你,希望你能为她写一个程序,帮助她得到上述过程中所有的商和余数。
输入描述
一行,两个正整数 n 和 A,表示她想要转成A进制的数字n。
输出描述
输出若干行,每一行两个数字 x
i
和 y
i
,表示第 i 次除法得到的商和余数。
用例输入 1
167 8
用例输出 1
20 7
2 4
0 2
提示
数据范围
对于 100% 的数据,保证 1≤n≤10
18
, 2≤A≤16。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a,b;
cin>>b>>a;
while(b!=0){
cout<<b/a<<" ";
if(b%a>=10){
if(b%a==10){
cout << 'A';
}
else if(b%a==11){
cout << 'B';
}
else if(b%a==12){
cout << 'C';
}
else if(b%a==13){
cout << 'D';
}
else if(b%a==14){
cout << 'E';
}
else if(b%a==15){
cout << 'F';
}
}
else{
cout << b%a;
}
cout << endl;
b=b/a;
}
return 0;
}