Codevs P1474十进制转m进制

时间限制: 1 s
空间限制: 128000 KB
题目等级 : 白银 Silver

【题目描述 】

将十进制数n转换成m进制数(m<=16,n<=100)

【输入描述】

共一行,n和m

【输出描述 】

共一个数,表示n的m进制

【样例输入】

样例1:
10 2
样例2:
100 15

【样例输出】

样例1:
1010
样例2:
6A

AC代码:

#include <iostream>
using namespace std;
const char a[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; 
char ans[100];      //保存结果
int k;                    //ans 的长度
void toData(int n,int m)
{
	int tmp = -1;                 //若连续两次n/m相同,说明已经除到了最后,结束循环
	while (n/m!=tmp)
	{
		tmp=n/m;
		ans[++k]=a[n%m];         //取余
		n/=m;
	}
}
int main()
{
	int n,m;
	cin>>n>>m;
	toData(n,m);
	for(int i=k;i>=1;i--) cout<<ans[i];    //反向输出
	return 0;
}
岂能尽如人意,但求无愧我心
原文地址:https://www.cnblogs.com/Zforw/p/9437351.html