转进制
来源:互联网 发布:软件研制总结报告 编辑:程序博客网 时间:2024/06/11 02:47
转进制
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 266 通过数: 211
【题目描述】
用递归算法将一个十进制数X转换成任意进制数M(M<=16)。
【输入】
一行两个数,第一个十进制数X,第二个为进制M。
【输出】
输出结果。
【输入样例】
31 16 {将十进制31转化为十六进制数}
【输出样例】
1F
【来源】
No
【代码】
#includevoid convert(int n, int base) { char digit; if(n) { convert(n/base,base); //使用递归算法来实现进制的转换:除K取余法 digit = n%base; if(digit >= 10) digit = 'A' + digit - 10; //如果余数大于等于10,则用英文字母ABCDEF分别表示数字10,11,12,13,14,15 else digit += '0'; //如果余数小于10,则直接用数字表示 printf("%c", digit); } } int main() { int x, m; scanf("%d%d", &x, &m); convert(x, m); printf("\n"); return 0; }
【说明】
vc6.0运行成功,提交通过。【补充知识】
除K取余法:https://baike.baidu.com/item/%E9%99%A4k%E5%8F%96%E4%BD%99%E6%B3%95/19385576?fr=aladdin