火星人是以 13 进制计数的:
- 题目要求输入数字转化为火星文或者输入火星文转化为数字
- 从输入样例中可以看出,输入数据类型与个数不可控需要判断
- 用空格判断输入数據个数,用第一个输入数据的类型来确定输入类型
- 将火星文放在数组中对应下标是它们对应的数字
- 使用string来读取数据,%c读取第一个数据之後的空白符确定是回车还是空格,再确定是否读取第二个数据
- 若第一个数据是数字将其从字符转化为数字,再对该数字求商和余;
若商为0(没有进位)直接输出余对应下标的字符串;
若商不为0,先输出商对应下标字符串再输出余对应字符串,用空格隔开;
若商不为0而余為0只输出商对应下标的字符串;
- 若第一个数据非数字,通过%c确定是否读取第二个数据
若只有一个数据说明无高位,直接输出其对应下標
若有两个数据分别找出下标,转化为数字输出
- 题不难,不过细节处理真费时间
- 字符串转数字的题也遇到好几次了该去了解一下相關函数了