题目编号 |
15 |
时间限制 |
1000 毫秒 |
内存限制 |
32768 K字节 |
问题描述
对于输入的十进制数,按要求转换成不同进制的数
输入
输入一个十进制表示的整数x(0<=x<=2000000000)和转换的进制n(2<=n<=16)。中间用空格隔开。
输出
输出对应进制表示的数,10到16的数字用大写英文A~F表示
输入样例
127 13
输出样例
9A
#include <cstdlib>
#include <iostream>
#define SIZE 20
using namespace std;
void change(int num1,int num2){
char array[SIZE];
int j = 0;
if(num1 == 0)
cout << num1 << endl;
else{
while(num1){
int temp;
temp = num1 %num2;
if(temp >= 10 && temp <= 16){
char ch = 'A';
for(int i = 0;i < temp - 10;i++)
ch++;
array[j++] = ch;
}
else
array[j++] = temp + 48;
num1 /= num2;
}
}
for(int k = j - 1;k >= 0;k--)
cout << array[k];
}
int main(void){
int num1,num2;
cin >> num1 >> num2;
change(num1,num2);
return EXIT_SUCCESS;
}