十进制转m进制

题目描述 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

用反向取余法

首先,我们平时用10进制求其他进制都是以相除取余数的方法来求。

所以,我们每次用n对m取余数,然后在相除,直到n小于m,那么就得到了m进制下的该数,只不过,我们需要把这些余数倒过来,才能表示我们想要的数。

代码如下:

#include <iostream>

using namespace std;

int main() {

    int n, m, num[31];

    for (int i = 0; i<31; i++)

        num[i] = -1;

    cin >> n >> m;

    for (int i = 30; n != 0; i–) {

        num[i] = n%m;      //用n对m取余数

        n /= m;       //取完余数之后要相除

    }

    for (int i = 0; i<31; i++) {

        if (num[i] >= 0 && num[i]<10)

            cout << num[i];

        else if (num[i]>9) {

            char a = num[i] + 55;      //ASCII码差值   A是从65开始的

            cout << a;

        }

    }

    return 0;

}

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