进位转换(杭电2031)
发布日期:2021-08-21 02:35:23 浏览次数:29 分类:技术文章

本文共 560 字,大约阅读时间需要 1 分钟。

/*进制转换

Problem 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>
int main()
{
    int N,R;
    char a[35];
    char b[]="0123456789ABCDEF";
    while(~scanf("%d %d",&N,&R))
    {
        int t=0,i;
        if(N<0)
        {
            printf("-");
            N=N*(-1);
        }
       
        for(i=0;;i++)//重复求余,最后倒着将数组数据输出
        {
            a[i]=b[N%R];
            t++;
            N=N/R;
            if(N==0)
            break;
        }
       
        while(t--)
        {
            printf("%c",a[t]);
        }
        printf("\n");
    }
    while(1);
    return 0;
   
}
           

转载地址:https://blog.csdn.net/weixin_33708432/article/details/86315311 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Ubuntu设置交换空间參考教程[图]
下一篇:js计时器 + asp 计时器

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月29日 11时14分19秒