算24点 C++
来源:互联网 发布:myeye cms监控软件 编辑:程序博客网 时间:2024/06/05 00:18
其实这道题木有什么困难,先放题目吧! 【 问题描述】
几十年前全世界就流行一种数字游戏, 至今仍有人乐此不疲. 在中国我们把
这种游戏称为“ 算 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, 输出“ YES”; 否则, 输出“ NO”。
【 样例】
Point24. In
5 5 5 1
Point24. Out
YES
稍微思考一下,发现这道题目并没有说明位置能不能变化,所以,我们可以把这四个数的排列算出来!!
1.将四个数视为一个集合;
2.从集合中随机取两个数,通过加减乘除计算这两个数的结果,然后再将结果放回集合,这样集合就减少了一个元素;
3.重复2的步骤,直到集合中只剩下一个元素为止;
4.查看最后一个元素是否有是24来得出结果。
下面到了发送代码的时候!!!(对不起,没有注解)
#include<stdio.h>#include<stdlib.h>int a[5],l;void sou(int sum){ int m,n; if(l==1) return; if(sum==1 && a[1]==24) { printf("YES"); l=1; exit(0); } for(int i=1; i<sum; i++) for(int j=i+1; j<=sum; j++) for(int k=1; k<=6; k++) { m=a[i]; n=a[j]; switch(k) { case 1: a[i]+=a[j]; a[j]=a[sum]; sou(sum-1); break; case 2: a[i]-=a[j]; a[j]=a[sum]; sou(sum-1); break; case 3: a[i]*=a[j]; a[j]=a[sum]; sou(sum-1); break; case 4: if(a[j] && a[i]%a[j]==0) { a[i]/=a[j]; a[j]=a[sum]; sou(sum-1); } break; case 5: a[j]-=a[i]; a[i]=a[sum]; sou(sum-1); break; case 6: if(a[i] && a[j]%a[i]==0) { a[j]/=a[i]; a[i]=a[sum]; sou(sum-1); } break; } a[i]=m; a[j]=n; }}int main(){ freopen("point24.in","r",stdin); freopen("point24.out","w",stdout); scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]); sou(4); printf("NO"); return 0;}
好了,今天下午还会将小木棍(stick)代码发送!
- 24点算法。c++。
- C语言24点
- 速算24点(C++)
- 24 点游戏 c语言
- C语言:24点游戏
- 24点游戏 c语言的实现
- 24点求解C程序源代码
- 24点游戏c语言源代码
- 24点小游戏(c语言)
- C语言实现24点游戏
- 24点算法源码(C#)
- 24点问题(穷举法/C++)
- C语言-纸牌计算24点小游戏
- 24点游戏C语言源代码
- [华为OJ--C++]107-24点运算
- 24点游戏(C语言)
- C语言实现简单24点游戏
- C语言设计24点游戏。
- Android之Dialog
- 八皇后问题优雅解法——位运算
- 浅谈MySQL中优化sql语句查询常用的30种方法
- 开启我的博客之旅
- Ubuntu14.04下安装GTK+
- 算24点 C++
- Handlebars.js 中文文档
- Edit with Markdown in CSDN
- python2.7 httplib, urllib, urllib2, requests 库的简单使用
- 移动互联网终端的touch事件,touchstart, touchend, touchmove
- Java学习总结第十五天Java多态性
- Linux常用命令-------软件包
- 大数据系列修炼-Scala课程69
- Java中只有值传递,而不存在引用传递