Description:
xuxu的数据结构要考试了,所以他在很努力的看书,有一天他看呀看呀看,突然看到一个进制转换的题目,说是要将
一个十进制数转换成二进制数,他算呀算呀算,然后就把这个问题解决了。。。。。
可是他很爱思考,他想怎么样能够将这个十进制数转换成K进制的数呢?求帮助,help!!!!
Input:
本题有多组测试数据,对于每组数据输入两个数n和k, n(32位整数)表示一个十进制数,k表示所需要转换的k进
制。 (2<= k<=16)。
输出为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A
表示,11用B表示等等)。
代码解析如下:
#include <stdio.h> #include <string.h> #include <stdlib.h> void ttor(int n, int r) { if (n) { ttor(n / r, r); printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0'); } } int main(void){ int n, r; while (~scanf("%d%d", &n, &r)) { if(n > 0) { ttor(n, r); }else if(!n) { putchar('0'); }else { putchar('-'); ttor(-n, r); } puts(""); } }其他解法待续。。。