题解:P11996 我是黄色恐龙大将军
解题思路
- 枚举
2^n 和5^n 的最高非零位数字a_n 和b_n 的所有可能取值 - 计算所有可能的
a_n \times b_n 的乘积 - 提取这些乘积中出现的所有数字
- 计算这些不重复数字的和
详细解法
第一步:确定 a_n 的可能取值
计算
| 最高非零位 |
||
|---|---|---|
| 1 | 2 | 2 |
| 2 | 4 | 4 |
| 3 | 8 | 8 |
| 4 | 16 | 1 |
| 5 | 32 | 3 |
| 6 | 64 | 6 |
| 7 | 128 | 1 |
| 8 | 256 | 2 |
| 9 | 512 | 5 |
| 10 | 1024 | 1 |
观察到
第二步:确定 b_n 的可能取值
计算
| 最高非零位 |
||
|---|---|---|
| 1 | 5 | 5 |
| 2 | 25 | 2 |
| 3 | 125 | 1 |
| 4 | 625 | 6 |
| 5 | 3125 | 3 |
| 6 | 15625 | 1 |
| 7 | 78125 | 7 |
| 8 | 390625 | 3 |
| 9 | 1953125 | 1 |
| 10 | 9765625 | 9 |
| 11 | 48828125 | 4 |
观察到
第三步:计算所有可能的乘积
计算
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | |
|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 |
| 2 | 2 | 4 | 6 | 8 | 10 | 12 | 14 | 18 |
| 3 | 3 | 6 | 9 | 12 | 15 | 18 | 21 | 27 |
| 4 | 4 | 8 | 12 | 16 | 20 | 24 | 28 | 36 |
| 5 | 5 | 10 | 15 | 20 | 25 | 30 | 35 | 45 |
| 6 | 6 | 12 | 18 | 24 | 30 | 36 | 42 | 54 |
| 8 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 72 |
第四步:提取所有乘积的数字
将所有乘积的数字拆解:
- 一位数:直接取其数字
- 两位数:拆分为十位和个位数字
得到所有出现的数字:
第五步:计算不重复数字的和
所有不重复数字的和:
结论
所有可能的
code
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<45-0;
return 0;
}