关于算法-数据结构:PAT甲级1027-Colors-in-Mars

33次阅读

共计 517 个字符,预计需要花费 2 分钟才能阅读完成。

题目粗心:

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

算法思路:

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

提交后果:

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;
} 

正文完
 0