Pascal 编程题:火柴

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:27:38
小明在家无聊时会拿火柴去拼数字,每个数字的拼法如图1所示。有一天小明突发奇想,想出一个玩法。他把所有火柴分为A,B,C三堆,然后用光每一堆的火柴各拼出一个数(用A,B,C的火柴拼出的数分别是a,b,c),这三个数都不能有前导0(0本身除外),再选择一个运算符op(+,-,*,/,其中/是整数除),使得a op b = c。因为小明只学过0到999的数,所以只能拼0到999这1000个数。
小明玩着玩着想到,对于火柴堆的一种分法,能得到多少个不同的等式呢?你能回答这个问题吗?

输入格式:
输入只有一行,包含三个整数,分别是A,B,C三堆火柴的火柴数。

输出格式:
输出只有一行,包含一个整数,为所求的等式的个数。
输入样例: 输出样例:
4 5 8 2

数据范围:
对于所有的数据,2 ≤ A,B,C ≤ 21。

样例提示:
样例中两个等式分别是4 + 71 = 75和11 + 5 = 16。

楼下说的不完全对,这次有些不一样,不过本质上差不多。这次不仅仅是相加,还有减、乘、除。其他地方基本上差不多。

这个简单 和noip2008 提高组 第二题一样
先预处理 每个数字所需要的火柴数
然后3重循环 枚举两个加数和结果 符合条件的就把数量+1
不懂就去看 noip2008 第二题的题解