算二十四(Calculate 24)
算二十四(Calculate 24)
春节在家看电视,王小丫主持的那节目有了算二十四。我对这一道题向来觉得不大会算,今天又碰到两个难题:5 5 5 1和8 8 3 3,想了很久,后面一道还做不出来。正好比较空闲,就想编个程序来自动求解。
基本思路:穷举法。用一个双精度数组存数,然后用类似冒泡排序法的双重循环(这样保证覆盖了四个数的C(4,2)种排列),把任意两个数组元素作运算( + - * /),考虑到- * /运算的非对易性,每次产生七个分支。对于长度为N的数组(算二十四的最开始是四个元素),这样做一次后删掉参与计算的两个元素,把运算结果作为新元素填入,这样得到长度为(N-1)的数组。这个新数组又可以递归调用前面的代码。在递归函数中判断,如果数组长度为1就看是不是24. 如果是就求解成功,否则遍历下一个分支。
做不出5 5 5 1或8 8 3 3的解法?下载我的程序吧
posted 2004.02.09 Monday
分类
Technology评论(1)
发表评论

你的程序真的好棒啊~!~!太好了~!我以后不用为二十四点为难了,谢谢你啊~!