码迷,mamicode.com
首页 > 其他好文 > 详细

NOJ1012-进制转换

时间:2016-04-10 19:29:45      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

进制转换

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 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;
}

 

 

 

NOJ1012-进制转换

标签:

原文地址:http://www.cnblogs.com/lzjtdxfxl/p/5374963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!