进制转换

来源:互联网 发布:淘宝新开店铺提取王 编辑:程序博客网 时间:2024/06/03 21:30

进制转换

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other)
Total Submission(s) : 3   Accepted Submission(s) : 3
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
 
代码如下:

#include <iostream>#include <cstdio>using namespace std;char ma[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};int main(){    int stacks[40];    int top;    int n , b;    while(scanf("%d %d",&n,&b)!=EOF)    {        top = 0;        int sign = 0;        if(n < 0){            sign = 1;            n = -n;        }        while(n)        {            stacks[top++] = n%b;            n/=b;        }        if(sign)            printf("-");        for(int i = top-1; i >= 0; i --)            printf("%c",ma[stacks[i]]);        printf("\n");    }    return 0;}


0 0
原创粉丝点击