FOJ 1477 进制转化

一,问题描述

二,问题分析

该问题最大的难点在于进制之间转换的方法,参考《算法笔记》

 

三,代码解答

#include<iostream>
using namespace std;
void digui(int i, int k)
{
	if (i < k)
	{
		if (i >= 10)
			printf("%c", i + 55);		//得到对应的字符
		else
			cout << i;
	}
	else
	{
		int w = i % k;					//得余数
		digui(i / k, k);					//用商再次递归
		if (w >= 10)						//由于进制转换方法得到的是逆序,所以在递归后再打印输出
			printf("%c", w + 55);
		else
			cout << w;
	}
}
int main()
{
	int i, k;
	while (cin >> i >> k)
	{
		digui(i, k);
		cout << endl;
	}
	return 0;
}
发布了54 篇原创文章 · 获赞 14 · 访问量 3577

猜你喜欢

转载自blog.csdn.net/q2511130633/article/details/105231101