数学智力题(电脑高手\算术天才),求高手指点

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:52:21
有这么一组数:
5.65 7.80 11.50 2.90 7.25 11.20 3.25 6.19 5.68 7.50
47.69 33.65 27.98 14.00 12.10 11.35 8.95 19.13 14.29 9.28
18.35 5.83 17.55 5.60 4.80 7.45 22.62 6.68

从上面这组数中抽出三个,使它们的和等于52.18,请问是那几个数?

在excel中搞过,没有成功。
这个题目是公司财务给我的,天呐,好像没有简便方法!
跪求各位大侠!

5.65 7.25 3.25
33.65 11.35 8.95
18.35 17.55 7.45

7.80 11.50 2.90
14.00 12.10 11.20
5.60 4.80 7.50

5.68 6.68
27.98 9.28

6.19
47.69
14.29

19.13
5.83

22.62

个位两个5一个8
个位两个0一个8
个位两个9一个0
个位两个8一个2
个位两个3一个2
个位一个5一个3一个0
前提将所有的数都乘以100去小数点,相加得5218(方便说明)
个位两个5一个8:
拿568 来说个位是8是为是6,所以两个个位是5的数十位相加再加6加1为1,只有895和1755合适但不满足,以此类推 无
个位两个0一个8:
只有2798有些可能 没有
个位两个9一个0:
不可能
个位两个8一个2
不可能
个位两个3一个2
没有
个位一个5一个3一个0
没有

用批处理编个小程序就搞定了,最多十分钟就搞定了

double[] abc ={ 5.65, 7.80, 11.50, 2.90, 7.25, 11.20, 3.25, 6.19, 5.68, 7.50, 47.69, 33.65, 27.98, 14.00, 12.10, 11.35, 8.95, 19.13, 14.29, 9.28, 18.35, 5.83, 17.55, 5.60, 4.80, 7.45, 22.62, 6.68 };

for (int a = 0; a < abc.Length; a++)
for (int b = a+1; b < abc.Length; b+