小白编程题:十进制转R进制

描述

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

输入

输入数据包含多个测试实例,对于每组测试用例:

输入两个整数N (|N| <= 108) 和 R(2 <= R <= 16, R ≠ 10)。

输出

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

输入样例 1 

7 2

23 12

-4 3

输出样例 1

111

1B

-11

//ASCII码思路重构进制转换(二)
#include<stdio.h>
char itoc(int n){
    if(n>=0&&n<10)
        return n+48;
    else if(n>=10&&n<=16)
        return n+55;
    else
        return 0;
}
int main(){
    int n,r;
    while(scanf("%d %d",&n,&r)!=EOF){
        int a[100]={0};
        int temp;
        if(n>0){
            temp=n;
        }
        else if(n<0){
            temp=-n;
        }
        else{
            printf("0\n");
            continue;
        }
        int i=0;
        for(;temp!=0;i++){
            a[i]=temp%r;
            temp/=r;
        }
        char m[100]={'\0'};
        for(int t=i-1,z=0;t>=0;t--,z++){
            m[z]=itoc(a[t]);
        }
        if(n<0){
            printf("-");
        }
        puts(m);
    }
    return 0;
}

posted @   椰萝Yerosius  阅读(4)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示