欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Codevs P1474十进制转m进制

程序员文章站 2022-11-18 12:08:51
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 【题目描述 】 将十进制数n转换成m进制数(m using namespace std; const char a[16] = {'0','1','2','3','4','5','6','7','8','9','A ......

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