2016-07-10
HDU-2031 进制转换
题目大意:输入一个十进制数N,将它转换成R进制数输出。
解题思路:辗转相除法。
注意:大于十进制的话要将部分数字转换为字符。
#include <iostream>
using namespace std;
int main () {
int x,y;
while ( cin >> x >> y ) {
int num[100];
int temp = 0;
int p = 1;
if ( x < 0) {
p = 0;
x = -x;
}
for ( int i = 0; x != 0; i++) {
num[i] = x % y;
x = x / y;
temp++;
}
if ( p == 0) cout << "-";
for ( int i = temp - 1; i >= 0; i--) {
switch ( num[i] ) {
case 10: cout << "A"; break;
case 11: cout << "B"; break;
case 12: cout << "C"; break;
case 13: cout << "D"; break;
case 14: cout << "E"; break;
case 15: cout << "F"; break;
default: cout << num[i];
}
}
cout << endl;
}
return 0;
}