2017第八届蓝桥杯决赛题目解析(1):36进制

问题描述:

对于16进制,我们使用字母A-F来表示10及以上的数字。如法炮制,一直用到字母Z,就可以表示36进制。36进制中,A表示10,Z表示35,AA表示370。你能算出MANY表示的数字用10进制表示是多少吗?请提交一个整数,不要填写任何多余的内容(比如:说明文字)

问题分析:

​作为蓝桥杯一贯的风格,省赛时候就有各种水题,国赛也不例外,这种题目甚至不需要编程解决,用excel,windows自带的计算器等工具,一般都能解决。

​但为了表述问题解决策略,还是贴出代码以供参考。

问题答案:

1040254

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>

int conversion(char t) { // 对36进制的单数字转换为10进制
if ('0' <= t and t <= '9')
return t - '0';
else
return t - 'A' + 10;
}
int main() {
std::cout << conversion('M') * 36 * 36 * 36 + \
conversion('A') * 36 * 36 + \
conversion('N') * 36 + \
conversion('Y');
return 0;
}