概述
题目描述 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;
}
最后
以上就是美丽黄豆为你收集整理的十进制转m进制的全部内容,希望文章能够帮你解决十进制转m进制所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复