时间限制: 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;
}