codevs之旅:1474 十进制转m进制

1474 十进制转m进制   http://codevs.cn/problem/1474/

 

 时间限制: 1 s

 空间限制: 128000 KB

 题目等级 : 白银 Silver

题解

 查看运行结果

题目描述 Description

将十进制数n转换成m进制数 m<=16

n<=100

输入描述 Input Description

共一行

n和m

输出描述 Output Description

共一个数

表示n的m进制

样例输入 Sample Input

样例1:10 2

样例2:100 15

样例输出 Sample Output

样例1:1010

样例2:6A

数据范围及提示 Data Size & Hint

用反向取余法

 

解答:这个题之前应该使用java做过,现在用c++做几分钟就写出来了。不得不说自己好像有点进步,哈哈。

核心思想其实就是除m取余,之后把余数从后向前组合就是转化之后的数字。

代码如下:

#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n,m;
    int b=0;
    int i=0;
    cin>>n>>m;
    int a[100];
    while(n!=0)
    {
        b = n%m;
        a[i] = b;
        i++;
        n = n/m;
    }
    for(int j=i-1; j>=0; j--)
    {
        if(a[j]==10) cout<<'A';
        else if(a[j]==11) cout<<'B';
        else if(a[j]==12) cout<<'C';
        else if(a[j]==13) cout<<'D';
        else if(a[j]==14) cout<<'E';
        else if(a[j]==15) cout<<'F';
        else cout<<a[j];
    }
    return 0;
}

 

    原文作者:进制转换
    原文地址: https://blog.csdn.net/xckkcxxck/article/details/83187897
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞