题目
二十四点算法 原理(比如:3,7,-5,-13用加减乘除每个数只能用一次=24)
提问时间:2020-10-29
答案
漫长的假期对于我来说总是枯燥无味的,闲来无聊便和同学玩起童年时经常玩的二十四点牌游戏来.此游戏说来简单,就是利用加减乘除以及括号将给出的四张牌组成一个值为24的表达式.但是其中却不乏一些有趣的题目,这不,我们刚玩了一会儿,便遇到了一个难题——3、6、6、10(其实后来想想,这也不算是个太难的题,只是当时我们的脑筋都没有转弯而已,
问题既然出现了,我们当然要解决.冥思苦想之际,我的脑中掠过一丝念头——何不编个程序来解决这个问题呢?文曲星中不就有这样的程序吗?所以这个想法应该是可行.想到这里我立刻开始思索这个程序的算法,最先想到的自然是穷举法(后来发现我再也想不到更好的方法了,悲哀呀,因为在这学期我曾经写过一个小程序——计算有括号的简单表达式.只要我能编程实现四个数加上运算符号所构成的表达式的穷举,不就可以利用这个计算程序来完成这个计算二十四点的程序吗?确定了这个思路之后,我开始想这个问题的细节.
首先穷举的可行性问题.我把表达式如下分成三类——
1、 无括号的简单表达式.
2、 有一个括号的简单表达式.
3、 有两个括号的较复4、 杂表达式.
穷举的开始我对给出的四个数进行排列,其可能的种数为4*3*2*1=24.我利用一个嵌套函数实现四个数的排列,算法如下:
/* ans[] 用来存放各种排列组合的数组 */
/* c[] 存放四张牌的数组 */
/* k[] c[]种四张牌的代号,其中k[I]=I+1.
用它来代替c[]做处理,考虑到c[]中有可能出现相同数的情况 */
/* kans[] 暂存生成的排列组合 */
/* j 嵌套循环的次数 */
int fans(c,k,ans,kans,j)
int j,k[],c[];char ans[],kans[];
{ int i,p,q,r,h,flag,s[4],t[4][4];
for(p=0,q=0;p
问题既然出现了,我们当然要解决.冥思苦想之际,我的脑中掠过一丝念头——何不编个程序来解决这个问题呢?文曲星中不就有这样的程序吗?所以这个想法应该是可行.想到这里我立刻开始思索这个程序的算法,最先想到的自然是穷举法(后来发现我再也想不到更好的方法了,悲哀呀,因为在这学期我曾经写过一个小程序——计算有括号的简单表达式.只要我能编程实现四个数加上运算符号所构成的表达式的穷举,不就可以利用这个计算程序来完成这个计算二十四点的程序吗?确定了这个思路之后,我开始想这个问题的细节.
首先穷举的可行性问题.我把表达式如下分成三类——
1、 无括号的简单表达式.
2、 有一个括号的简单表达式.
3、 有两个括号的较复4、 杂表达式.
穷举的开始我对给出的四个数进行排列,其可能的种数为4*3*2*1=24.我利用一个嵌套函数实现四个数的排列,算法如下:
/* ans[] 用来存放各种排列组合的数组 */
/* c[] 存放四张牌的数组 */
/* k[] c[]种四张牌的代号,其中k[I]=I+1.
用它来代替c[]做处理,考虑到c[]中有可能出现相同数的情况 */
/* kans[] 暂存生成的排列组合 */
/* j 嵌套循环的次数 */
int fans(c,k,ans,kans,j)
int j,k[],c[];char ans[],kans[];
{ int i,p,q,r,h,flag,s[4],t[4][4];
for(p=0,q=0;p
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
1,人们染上烟瘾,最终因吸烟使自己丧命.
最新试题
- 1仿照例子写短语(每种类型写三个)
- 2杨欣欣同学平时爱读各种课外书,每次写作文时,她总是第一个完成,而且写的非常好
- 3英语翻译
- 4郑振铎《猫》这篇文章的结构严谨而清晰,能够明显体现这个特点的是哪三个句子?
- 5一张纸对折n次,所得的是每份是这张纸几分之几的公式
- 6There___lots of people at the restourant when I got there.A.is B.was C.are D.were
- 7cos330°+sin210°=?
- 8David was too tired,he()on the floor and fell asleep
- 9若z属于C,且|z-2i|=1,则|z+2i|的最大值是?
- 10春行即兴中表示宁静的词语
热门考点
- 1如果关于y 的方程3m+6n=7y-4y的解为y=1,则m和n应满足的关系式为
- 2对以下几个问题作假设,即对问题中涉及的事物的因果关系有一个初步的解释.
- 3某温度下,Na2CO3饱和溶液中溶质的质量分数为a%,向其中加入m mol Na2CO3•10H2O,或者n mol Na2CO3,可析出相同质量的Na2CO3•10H2O,则( ) A.a%可能是
- 4The dictionary ______is sold in that bookshop.A.your needB.what your need
- 5There is__a bank_near the library.(对bank提问)
- 6英语填空.懂得一些保护自己的方法将会帮助保证你在地震中的安全._________some
- 7伯牙悼念钟子期的诗
- 81.已知集合A={x|8≥-2x≥4},集合B={x|x-a≥0},若A是B的子集,求实数a的取值范围.
- 9下句中的现在分词的用法和逻辑主语是什么?
- 10蒸汽帮我们做了什么事?利用蒸汽我们发明了什么