题目连接
题意 :
输入一个十进制数N,将它转换成R进制数输出。
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示)
AC代码:
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
char base[1005];
//10进制转化为其它进制 1 ~ 16
void BaseConversion(int n, int b) {
int q = 0;
while (n) {
int temp = n % b;
base[q++] = temp > 9 ? (temp + 55) : (temp + '0');
n /= b;
}
for(int i = q - 1; i >= 0; --i) cout << base[i];
cout << endl;
}
int main() {
int n, b;
while(cin >> n >> b){
if(n < 0) {
n = -n;
cout << "-";
}
BaseConversion(n, b);
}
return 0;
}
AC:2
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
char base[1005];
//10进制转化为其它进制 1 ~ 16
int ch[6] = {'A', 'B', 'C', 'D', 'E', 'F'};
void BaseConversion(int n, int b) {
int q = 0;
while (n) {
int temp = n % b;
if(temp > 9) base[q++] = ch[temp % 10];
else base[q++] = temp + '0' ;
n /= b;
}
for(int i = q - 1; i >= 0; --i) cout << base[i];
cout << endl;
}
int main() {
int n, b;
while(cin >> n >> b){
if(n < 0) {
n = -n;
cout << "-";
}
BaseConversion(n, b);
}
return 0;
}