NOJ1012-进制转换
进制转换
时间限制(普通/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 >= 10 ) { printf( "%c", temp + 55 ); } else { printf( "%d", temp ); } } } int main() { int n; int i; int a, r; scanf( "%d", &n ); for( i = 0; i < n; i++ ) { scanf( "%d%d", &a, &r ); if( a < 0 ) { a = -a; printf( "-" ); } if( a == 0 ) { printf( "0" ); } else fun( a, r ); printf( "\n" ); } return 0; }