时间限制: 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;
}
内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!