进制转换
题目描述
用递归算法将一个十进制数 X X X 转换成任意进制数 M M M( M ≤ 16 M\le16 M≤16)。
输入格式
一行两个数,第一个十进制数 X X X,第二个为进制 M M M。
输出格式
输出结果。
样例 #1
样例输入 #1
31 16
样例输出 #1
1F
提示
样例解释。
将十进制 31 31 31 转化为十六进制数。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
int main(){
char str[500];
long long m,n,i,j;
scanf("%lld%lld",&m,&n);
i=0;
while(m!=0){
if(m%n<10){
str[i++]='0'+m%n;
}//这里需要考虑n是否小于10
else{
if(m%n==10){
str[i++]='A';
}
if(m%n==11){
str[i++]='B';
}
if(m%n==12){
str[i++]='C';
}
if(m%n==13){
str[i++]='D';
}
if(m%n==14){
str[i++]='E';
}
if(m%n==15){
str[i++]='F';
}
}
m/=n;//直接把余数舍去
}
for(j=i-1;j>=0;j--){
printf("%c",str[j]);
}
printf("\n");
return 0;//CSDN:旺旺的碎冰冰~
}