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

进制转换

时间:2015-01-18 16:57:17      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

Description

输入一个十进制数N,将它转换成R进制数输出。
 

Input

输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16, R<>10)。 
 

Output

为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。
 

Sample Input

7 2 23 12 -4 3
 

Sample Output

111 1B -11
 
 
 
 
 
#include <stdio.h>
#include <stdlib.h>
#define N 33
void num (int n, int r, char a[]);
int main()
{
    char a[N];
    int n,r;
    while (scanf ("%d%d", &n, &r)!=EOF)
    {
        num(n, r, a);
    }
    return 0;
}
void num (int n, int r, char a[])
{
    int i = 0;
    if (n<0)
    {
        n = -n;
        printf("-");
    }
    while (n>0)
    {
        a[i]=n%r;
        if (a[i]>=10)
            a[i]=‘A‘+a[i]-10;
        n = n/r;
        i++;
    }
    a[i] = \0;
    for ( i = i-1; i>=0; i--)
    {
        if(a[i]>=‘A‘ && a[i]<=‘Z‘)
            printf("%c", a[i]);
        else
            printf ("%d", a[i]);
    }
    printf ("\n");

}
 
 
 
 
 
 
 
 
 

进制转换

标签:

原文地址:http://www.cnblogs.com/yishilin/p/4231854.html

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