首先分析是否存在该情况:
首先要明白,两个数字相加最多只可能向前进一位,所以 C 只有可能有两个取值: C = \max(A, B) \qquad /\qquad C = \max(A,B) + 1 如果不满足上述的条件,则直接输出 -1
当条件满足的时候,考虑 A , B 的大小关系以及是否会进位,由此我们可以分成下面几种情况
==(A = B) \and (C = \max(A, B) + 1)==
* 当 A = B = 1 时, 发生进位的组合有下面的情况:
1 9
2 8\qquad9
3 7\qquad8\qquad9
\dots
9 1\qquad2\qquad3\qquad4\qquad5\qquad6\qquad7\qquad8\qquad9
总共有 1+2+3+\dots+9 = 45 种情况
*当 A = B = 2 时
首先考虑最高位自己进位的情况,此时会有 45\times10\times10 种情况
其次是由于最高位的下一位进位导致的最高位进位
此时就需要 数字 a, b 的最高位之和要等于 9, 符合条件的有
1 8
2 7
\dots
8 1
一共有 8 种情况,所以第二种情况的条件数为:8\times 45=360
所以总情况数为 4500 + 360 = 4860
*当 A = B = 3 时
跟等于 2 的分析情况类似,不过也有些特别
首先考虑最高位自己进位的情况,此时会有 45\times100\times100 种情况
其次是由于最高位的下一位进位导致的最高位进位
首先数字 a, b 的最高位之和要等于 9,符合条件的有 8 种
但是最高位的下一位发生进位的条件并非我们之前所求
在求 A=B=2 时,我们是要求最高位不能为 0 的,所以我们少考虑了两种情况
即: 0\qquad9 和 9\qquad 0
所以满足最高位的下一位进位的条件数为 :8 \times (4860 + 45 + 45) = 39600
所以符合情况的条件数为 450000 + 39600 = 489600
*当 A = B = n 时
我们假设答案为 a_n , 那么总结分析我们可以得到下面的答案 \begin{cases} a_n = 45\cdot10^{2(n-1)} + 8\times b_{n-1}\qquad (n\ge 1)\\ b_n = a_n + 2\cdot b_{n-1}\qquad (n\ge 1)\\ a_0 = b_0 = 0 \end{cases}
==(A = B) \and (C = \max(A, B))==
不进位的情况比较简单,可以转化为 (全部情况 - 进位情况)
当 A = B = n 时
全部情况为 9 \times9 \times 10^{2(n-1)}
所以最终答案就是 : 81\times10^{2(n-1)} - a_n
==(A < B) \and (C = \max(A, B) + 1)==
如果要发生进位,那么实际情况一定长成:
99999\dots
::::::::::::\dots
其中 \dots 的长度为 \min(A, B) , 所以实际问题又转化为 A = B = \min(A,B) 的情况进位的情况
不过这个时候最高位是可以为 0 的,所以答案实际上是 : b_{\min(A,B)} - b_{\min(A,B) - 1}
==(A < B) \and (C = \max(A, B))==
同理 : 可以转化为 (全部情况 - 进位情况)
所以答案为 :
81\times 10^{A-1}\times10^{B-1} - (b_{\min(A,B)} - b_{\min(A,B) - 1})