题解:P11996 我是黄色恐龙大将军

· · 题解

解题思路

  1. 枚举 2^n5^n 的最高非零位数字 a_nb_n 的所有可能取值
  2. 计算所有可能的 a_n \times b_n 的乘积
  3. 提取这些乘积中出现的所有数字
  4. 计算这些不重复数字的和

详细解法

第一步:确定 a_n 的可能取值

计算 2^n 的最高非零位数字:

n 2^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

观察到 a_n 的可能取值为: 1, 2, 3, 4, 5, 6, 8

第二步:确定 b_n 的可能取值

计算 5^n 的最高非零位数字:

n 5^n 最高非零位 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

观察到 b_n 的可能取值为: 1, 2, 3, 4, 5, 6, 7, 9

第三步:计算所有可能的乘积

计算 a_n \times b_n 的所有可能组合:

a_n \ b_n 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

第四步:提取所有乘积的数字

将所有乘积的数字拆解:

得到所有出现的数字:

0,1,2,3,4,5,6,7,8,9

第五步:计算不重复数字的和

所有不重复数字的和:

0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45

结论

所有可能的 a_n \times b_n 的值的数字的不重复数字之和为:

\boxed{45}

code

#include<bits/stdc++.h>
using namespace std;
int main(){
    cout<<45-0;
    return 0;
}