您的位置:首页 > 其它

十进制数转换成任意进制 (基础题) HLG 1937

2013-11-27 17:15 183 查看
Description:

xuxu的数据结构要考试了,所以他在很努力的看书,有一天他看呀看呀看,突然看到一个进制转换的题目,说是要将

一个十进制数转换成二进制数,他算呀算呀算,然后就把这个问题解决了。。。。。

可是他很爱思考,他想怎么样能够将这个十进制数转换成K进制的数呢?求帮助,help!!!!

Input:

本题有多组测试数据,对于每组数据输入两个数n和k, n(32位整数)表示一个十进制数,k表示所需要转换的k进

制。 (2<= k<=16)。

Output:

输出为每个测试实例输出转换后的数,每个输出占一行。如果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("");
}
}

其他解法待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息