题目描述
kiki有一个十进制数,他想转成r进制,请你编程帮他实现。
输入描述:
两个整数,空格间隔,分别表示十进制整数n ( 1 ≤ n ≤ 109 )和r(1 ≤ r ≤ 16)进制
输出描述:
对应的r进制
示例1
输入
复制18 2
18 2
输出
10010
示例2
输入
18 16
输出
12
示例3
输入
703710 16
输出
ABCDE
方法1:
#include <iostream>
#include <string>
using namespace std;
signed main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
char digits[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
string ans="";
int n=0,r=0;
cin>>n>>r;
while(n>0){
int x=n%r;
ans=digits[x]+ans;
n/=r;
}
cout<<ans<<'\n';
return 0;
}
#include <iostream>
#include <string>
using namespace std;
string convert(int num, int r) {
string res = "";
while (num) {
int remainder = num % r;
if (remainder < 10) {
res = char(remainder + '0') + res;
}
else {
res = char(remainder - 10 + 'A') + res;
}
num /= r;
}
return res;
}
int main() {
int num, r;
cin >> num;
cin >> r;
string res = convert(num, r);
cout << res << endl;
return 0;
}