时间限制: 1000 ms 空间限制: 262144 KB 具体限制
题目描述
用递归算法将一个十进制数X(1<=X<=10^9)转换成任意进制数M(2<=M<=16)。
输入
一行两个正整数X和M。
输出
输出X的M进制的表示。
样例输入
31 16
样例输出
1F
题记:
这题点明了要用递归,那就递归吧,但是效率相比于递推低很多。
C++程序如下:
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
void convert(int n, int base)
{
char digit;
if(n) {
convert(n / base, base);
digit = n % base;
if(digit >= 10)
digit = 'A' + digit - 10;
else
digit += '0';
cout << digit;
}
}
int main(void)
{
int x, m;
cin >> x >> m;
convert(x, m);
return 0;
}