黑马程序员技术交流社区
标题:
【9期第一个算法帖子】期待你的交流!
[打印本页]
作者:
黄方
时间:
2012-3-30 22:39
标题:
【9期第一个算法帖子】期待你的交流!
算24点
时间限制: 1000 ms 内存限制: 65536 KB提交数: 20 通过数: 6
【题目描述】几十年前全世界就流行一种数字游戏,至今仍有人乐此不疲.在中国我们把这种游戏称为“算24点”。您作为游戏者将得到4个1~9之间的自然数作为操作数,而您的任务是对 这4个操作数进行适当的算术运算,要求运算结果等于24。 您可以使用的运算只有:+,-,*,/,您还可以使用()来改变运算顺序。注意:所有的中间结果须是整数,所以一些除法运算是不允许的(例如,(2*2)/4是合法的,2*(2/4)是不合法的)。下面我们给出一个游戏的具体例子: 若给出的4个操作数是:1、2、3、7,则一种可能的解答是1+2+3*7=24。
【输入】只有一行,四个1到9之间的自然数。
【输出】如果有解的话,只要输出一个解,输出的是三行数据,分别表示运算的步骤。其中第一行是输入的两个数和一个运算符和运算后的结果,第二行是第一行的结果和一个输入的数据、运算符、运算后的结果;第三行是第二行的结果和输入的一个数、运算符和“=24”。如果两个操作数有大小的话则先输出大的。 如果没有解则输出“No answer!”
【输入样例】1 2 3 7
【输出样例】
2+1=3
7*3=21
21+3=24
作者:
郑苑东
时间:
2012-4-7 21:33
明天算出来跟你看看。。。
作者:
宋蕈
时间:
2012-4-7 22:00
还没写代码: 但大致的思路应该:
1,通过观察: 这四个数的位置应该可以任意变化
2,算法就是在这四个数两两间 选择 ‘+’ ,‘-’,‘*’,'/' 这四个符号的变化。
3,将以上的两点结合在一起 各自套循环的让计算机来 算,当满足 总的运算结果是 24 后,就直接输出 这个
表达式即可, 大致是这样了, 但操作起来还是有点难度的。
作者:
黄方
时间:
2012-4-7 23:37
郑苑东 发表于 2012-4-7 21:33
明天算出来跟你看看。。。
我可是挂了一周了,没人答出来!
作者:
郑苑东
时间:
2012-4-7 23:41
黄方 发表于 2012-4-7 23:37
我可是挂了一周了,没人答出来!
刚才给人坑了。。写了一个逻辑错误的代码害我看了半以为语法错误,。。害了我。。。明天算出来就回复你。。大约有思路了。。。没人会因为别人觉得这个写了也没有分。。。。。
作者:
郑苑东
时间:
2012-4-7 23:46
应该是24*24种
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2