/*
*
*Problem Description
*输入一个十进制数N,将它转换成R进制数输出。
*
*
*Input
*输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。
*
*
*Output
*为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
*
*
*Sample Input
*7 2
*23 12
*-4 3
*
*
*Sample Output
*111
*1B
*-11
*
*
*Author
*lcy
*
*
*Source
*C语言程序设计练习(五)
*
*
*Recommend
*lcy
*
*/
#include<iostream>
#include<string>
using namespace std;
void transform(int n, int r) {
bool mark = 0;
if (n < 0) {
n = -n;
mark = 1;
}
string result;
char x;
while (n != 0) {
if (n % r > 9) {
x = 'A' + n % r - 10;
result = x + result;
}
else {
x = '0' + n % r;
result = x + result;
}
n /= r;
}
if (mark) result = '-' + result;
cout << result << endl;
}
int main() {
int n, r;// r是进制
while (cin >> n >> r) {
transform(n, r);
}
system("pause");
return 0;
}
hdu_problem_2031_进制转换
最新推荐文章于 2021-10-07 12:16:10 发布