填数字游戏
把1、2、3、4、5、6、7、8、9、10填进下面图片的圆圈中,每个数字必须也只能用一次,有直线连起来的数字的总和要等于24
大家用编程的方法解题吧
语言不行,越简单越好 例如:
本帖最后由 wayne 于 2009-12-1 17:31 编辑
这道题可以在草稿纸上穷举,只需考虑六种情况
一共有四组解 4组这么少? 我用C++穷举了一下有1152中解法 很多对称的情况的,每种情况根据对称性可以产生2*6*2*6=144种。如果楼上方法没错,应该共8种不同的情况 中间左右两环的数字和为17,只有4种情况: 8,9 9,8 7,10 10,7
上下有6种情况: 16 25 34435261 题目没说清楚,应该是3个菱形每个角上的数字和 左边24+右边24=48
所以中间上下=(1+10)*10/2-48=7
所以中间左右=24-7=17 假定从上到下,每行从左到右依次是
1 2 3
4 5 6 7
8 9 10
with t1 as(select level l from dual connect by level<=10) /* x9=7-x2,x6=17-x5*/
select count(*) from t1 x1,t1 x2,t1 x3,t1 x4,t1 x5,/*t1 x6,*/t1 x7,t1 x8,/*t1 x9,*/t1 x10
where x1.l+x4.l+x5.l+x8.l=24
and x2.l+x5.l+17-x5.l+x8.l=24
and x3.l+17-x5.l+x7.l+x10.l=24
and x1.l<x8.l and x2.l<7-x2.l and x3.l<x10.l
and x4.l<x5.l;
COUNT(*)
----------
903
Elapsed: 00:00:04.12
页:
[1]
2