T1161:转进制

【题目描述】

用递归算法将一个十进制数X转换成任意进制数M(M≤16)。

【输入】

一行两个数,第一个十进制数X,第二个为进制M。

【输出】

输出结果。

【输入样例】

31 16 {将十进制31转化为十六进制数}

【输出样例】

1F

AC代码:

#include<iostream>
using namespace std;
char s[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
void f(int n, int d){
	int temp;
	temp = n % d;
	n /= d;
	if(n != 0){
		f(n, d);	
	}
	cout << s[temp];
}
int main(){
	int n, d;
	cin >> n >> d;
	f(n, d);
	return 0;
}

注意点:

  1. 这道题很好体现了递归的顺序;

猜你喜欢

转载自blog.csdn.net/weixin_42522886/article/details/88375742