2031

来源:互联网 发布:安信网络身份认证 编辑:程序博客网 时间:2024/04/29 05:54

进制转换

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 48397    Accepted Submission(s): 26584


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

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

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

Sample Input
7 223 12-4 3
 

Sample Output
1111B-11
 

Author
lcy
 

Source
C语言程序设计练习(五)
 

Recommend
lcy   |   We have carefully selected several similar problems for you:  2032 2033 2020 2035 2034 

View Code

Problem : 2031 ( 进制转换 )     Judge Status : Accepted
RunId : 20067950    Language : C    Author : 837274600
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include<stdio.h>#include<string.h>#include<math.h>char change(int n){    if (n >= 0 && n <= 9)        return n + '0';    else        return n - 10 + 'A';}int main(){    int n, r;    while (scanf("%d %d", &n, &r) != EOF)    {        int inf = 0, i = 0;        char s[50];        if (n > 0) inf = 1;        else        {            printf("-");            n = abs(n);        }        while (n / r)        {            s[i++] = change(n%r);            n /= r;        }        s[i++] = change(n);        while (i--)            printf("%c", s[i]);        printf("\n");    }    return 0;}
0 0
原创粉丝点击