时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)
题目描述
nowcoder费了很大劲,终于和地外文明联系上。我们地球人通常有10根手指,因此我们习惯用10进制的数,而外星人的手指有16跟、8根等不等的数目,因此他们使用与我们不同的进制。为了方便沟通,需要你开发一款工具,把地球人的10进制转换成外星人的R进制形式。
输入描述:
输入有多行。 每行包括两个正整数n和R,其中2≤R≤16。 输入直到文件结束为止。
输出描述:
对于每个用例,输出n对应的R进制形式。 超过10进制的数,10用A表示、11用B表示,依次类推。
输入例子:
1989 2 1119 16
输出例子:
11111000101 45F
题解:明白进制转换的机制,模拟即可
代码:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int main() {
long long int n,m;
while(scanf("%d%d",&n,&m)!=EOF) {
int a[1005];
int t=0;
while(n) {
a[t]=n%m;
n/=m;
t++;
}
for(int j=t-1; j>=0; j--) {
if(a[j]==10) {
printf("A");
} else if(a[j]==11) {
printf("B");
} else if(a[j]==12) {
printf("C");
} else if(a[j]==13) {
printf("D");
} else if(a[j]==14) {
printf("E");
} else if(a[j]==15) {
printf("F");
} else {
printf("%d",a[j]);
}
}
printf("
");
}
return 0;
}