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;
}