P10984 [蓝桥杯 2023 国 Python A] 残缺的数字 题解

· · 题解

题目传送门

题意简述

18 个七段数码管,它们共同显示了一个 18 位数。但有一些数码管的状态从点亮错误变为了熄灭,现在已知数码管状态,求可能有多少种 18 位数满足这个数码管状态。

分析

由于点亮的数码管一定是点亮状态(不会是熄灭状态错误变为了点亮),同时数码管的状态已知,因此我们可以手动画出每个数码管的状态,然后枚举每个数码管可能表示什么数字,枚举出下图:

绿色数字代表这一位有几种可能的数字。

根据乘法原理,最后得出的结果是所有这些绿色数字相乘。

同时需要注意是否会出现前导 0,我们注意到首位不会是 0,因此不需要特殊化。

最后是代码实现,直接一行输出这些数的乘积就行了。