加减乘除24游戏
传统的扑克牌玩法有一个算24点,除去J,Q,K,A和大小王,任意取出四张牌,把上面的点数用加减乘除等计算方法(隐含括号运算),使得这些点数计算出来的最后结果刚好为24,谁算得又快又好为胜者. 如抽到1,2,6,8,则(6-2-1)*8=24,当然(6/2/1)*8=24也可.如抽到10,10,10,10,则无法可想了. 编程要求: (1)统计出求不出24的所有组合数目. (2)将每一组合的计算结果写入文件result.txt,每两个组合一行. 谢谢各位啦!!
你要用C++还是C呀? 第一个要求要以什么方式表示出来? 其实到网上搜一下算法,再自己组织组织就行了。 我用VC++6。0试的。 参照的是下面的程序: 按你的要求又改了改。 唉。。代码太长放不下了。放附件里了。 你要做的: 1、用VC建个控制台程序。
2、把24Calc。txt里的代码全部复制粘贴到主函数之前。 3、在主函数里添加一句代码: Exec(); 4、编译运行。 结果: 在可执行文件的目录下(如果是Debug运行的话就是在工程目录下),生成两个文件result。txt和bad。
txt。 其中,result。txt里是可行的算式。bad。txt里是求不出24的组合。 都是按每两个组合一行的形式输出的。 两个文件的最后都输出了记录总数,用Count:***的形式表示。 你要觉得输出的哪不合适再自己改改吧,输出语句的位置在最下面的Exec函数里。
由于我的编译器不是中文的,所以没怎么加注释(中文保存的时候会变乱码)。如果想看注释的话请参照前面提到的24dlg。rar里的源码。
其实《数据结构》上专门有对于算式运算的算法描述 很简单,就是把输入的运算式的数字和符号分别依次推入两个栈 推入栈内的同时,对输入符号和符号栈栈顶的优先级进行比较,如果新输入符号优先级高,则进行取两栈顶再与刚输入的数字和符号进行运算,出结果后,将运算结果推入数字栈。如果优先级低,则不进行运算,只将数字和符号分别压入栈顶。这样直到运算完成
这类的组合真的是太多了,举不胜举。
答:只有一种拉... 6÷(1-6÷8)=24详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>