进制转换
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 2214 测试通过 : 645
总提交 : 2214 测试通过 : 645
比赛描述
将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10。
输入
多行。第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000≤N≤100000,2≤R≤16,R≠10。
输出
多行。每行给出转换后的R进制数。
样例输入
3
7 2
23 12
-4 3
样例输出
111
1B
-11
提示
题目来源
GUOJ
题目要求很简单,十进制转R进制,我用的递归,用栈也可以实现。
#include <cstdio> void fun( int n, int r ) {
if( n ) {
fun( n / r, r );
int temp = n % r;
if( temp >= ) {
printf( "%c", temp + );
}
else {
printf( "%d", temp );
}
}
}
int main() {
int n;
int i;
int a, r;
scanf( "%d", &n );
for( i = ; i < n; i++ ) {
scanf( "%d%d", &a, &r );
if( a < ) {
a = -a;
printf( "-" );
}
if( a == ) {
printf( "" );
}
else
fun( a, r );
printf( "\n" );
}
return ;
}