880047 - 火柴棒等式

通过次数

5

提交次数

9

时间限制 : 1 秒
内存限制 : 128 MB

给出 n 根火柴棒,可以拼出多少个形如“A+B=C”的等式? 等式中的 A、B、C 是用火柴棒拼出的整数(若该数非零,则最高位不能是 0。 需要注意以下几点: (1) 加号与等号各自需要两根火柴棒。 (2) 如果 A ≠ B,则 A+B=C 与 B+A=C 视为不同的等式(A、B、C 均大 于或等于 0)。 (3) n 根火柴棒必须全部用上(n≤24

输入

一个整数

输出

一个整数

样例

输入

14

输出

2

提示

首先,预处理每个数字(0~9)需要用几根火柴棒,存储在数组 f 中。然后, 穷举 a 和 b,算出它们的和 c,再判断下列约束条件是否成立:f (a)+ f (b)

  • f (c)= n-4。现在的问题是:a 和 b 的范围有多大?可以发现尽量用数字 1 拼成的数比较大,分析可知最多不会超过 1111。程序实现时,分别用三个循 环语句预处理好所有两位数、三位数、四位数构成所需要的火柴棒数量。