进制转换
输入一个十进制数N,将它转换成R进制数输出。
输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。
为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
#include <iostream>
using namespace std;int main() {int num;int jinzhi, flag, i;char s[50];while (cin >> num >> jinzhi) {flag = 0; //正数i = 0;if (num < 0) {flag = 1;//负数num = -num;}while (num) {if (num % jinzhi <= 9) s[i] = (num % jinzhi) + '0';else if (num % jinzhi == 10) s[i] = 'A';else if (num % jinzhi == 11) s[i] = 'B';else if (num % jinzhi == 12) s[i] = 'C';else if (num % jinzhi == 13) s[i] = 'D';else if (num % jinzhi == 14) s[i] = 'E';else if (num % jinzhi == 15) s[i] = 'F';num /= jinzhi;i++;}int len = i;if (flag == 1) cout << "-";for (int j = len - 1; j >= 0; j--) cout << s[j];cout << endl;}return 0;
}