1
题目大意:

给定三个[0,168]范围内的十进制整数,将它们转换为十三进制后按顺序输出。

算法思路:

该题数据范围就确定了转化为13进制的数字最多只有2位,所以对于任意一个[0,168]范围内的十进制整数,除以13就是十位数字,对13取余就是个位上的数字,唯一的区别在于对于大于9的数字用大写字母表示,那么使用radix数组存储13进制的每一位数字,比如radix[10]='A',代表了实际数字与显示数字的对应关系,radix[a[i]/13],radix[a[i]%13]就是对应的十位数字和个位数字上的显示数字。

提交结果:

360截图18491003819591.png

AC代码:
#include<cstdio>

using namespace std; 

int main(){
    int a[3]={};
    scanf("%d %d %d",&a[0],&a[1],&a[2]);
    char radix[13] = {'0','1','2','3','4','5','6','7','8','9','A','B','C'};//13进制数 
    printf("#");
    for(int i=0;i<3;++i){
        printf("%c%c",radix[a[i]/13],radix[a[i]%13]);
    }
    return 0;
} 

乔梓鑫
569 声望17 粉丝

主要分享个人学习经验和心得