百练2787:算24题解
2787:算24
- 查看
- 提交
- 统计
- 提示
- 提问
- 总时间限制:
- 3000ms
- 内存限制:
- 65536kB
- 描述
-
给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。
这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。
比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。
- 输入
- 输入数据包括多行,每行给出一组测试数据,包括4个小于10个正整数。最后一组测试数据中包括4个0,表示输入的结束,这组数据不用处理。
- 输出
- 对于每一组测试数据,输出一行,如果可以得到24,输出“YES”;否则,输出“NO”。
- 样例输入
-
5 5 5 1 1 1 4 2 0 0 0 0
- 样例输出
-
YES NO
- 查看
- 提交
- 统计
- 提示
- 提问
- 代码:
#include<cstdio> #include<cmath> int ans = 0; void dfs(double a[],int n){int i,j,x,y,k,m;double b[4];if(n==1&&fabs(a[0]-24)<0.0001) ans = 1;else if(n > 1)for(i = 0; i < n; i++){for(j = 0; j < n; j++){if(i == j) continue;for(m=k=0;k<n;k++){if(k!=i&&k!=j){b[m++]=a[k];}}b[m]=a[i]+a[j]; dfs(b,m+1);b[m]=a[i]-a[j]; dfs(b,m+1);b[m]=a[i]*a[j]; dfs(b,m+1);if(a[j]!=0) b[m]=a[i]/a[j]; dfs(b,m+1); }} } int main(){ double a[4];while(~scanf("%lf%lf%lf%lf",&a[0],&a[1],&a[2],&a[3])){if(a[0] + a[1] + a[2] + a[3] == 0) break;ans = 0; dfs(a,4);if(ans) puts("YES");else puts("NO");}return 0; }
百练2787:算24题解相关推荐
- Bailian2787 算24【DFS】(POJ NOI0205-1789)
问题链接:POJ NOI0205-1789 算24. 2787:算24 描述 给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式.现在的问题是,是否存在一种方 ...
- 程序设计入门经典题解(百练篇)
参考链接:PKU百练题解(Bailian) Bailian1017 装箱问题[贪心] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索]_海岛Blo ...
- 百练(十三~十六)题解
百练(十三) Bailian2806 公共子序列[最长公共子序列+DP] - 海岛Blog - CSDN博客 Bailian3143 验证"歌德巴赫猜想"[筛选法]_海岛Blog- ...
- 百练(九~十二)题解
百练(九) Bailian2801 填词 POJ1629 ZOJ1546 Fillword[排序] - 海岛Blog - CSDN博客 POJ1088 Bailian1088 滑雪[DFS+记忆化搜索 ...
- Python百练成钢002-计算自幂数
这是[Python 百练成钢]系列文章的第 002 篇,计划完成 100 道练习题. 本文环境:python3.8 计算自幂数 什么是自幂数? 自幂数:也叫超完全数字不变数.自恋数.阿姆斯特朗数(Ar ...
- 钓鱼问题(百练1042)
★问题描述: 约翰正在钓鱼.他有h个小时可用(1 <= h <= 16),并且该区域有n个湖泊(2 <= n <= 25),沿着一条单向公路可达.约翰从1号湖开始,但他可以在任 ...
- 【百练】护林员盖房子
护林员盖房子 百练 2019信科研究生上机测试 A 总时间限制: 1000ms 内存限制: 65536kB 描述 在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木. 现在请你帮他计算 ...
- [DFS] P1236 算24点 ( 普及+/提高
Date:2019/10/25 Degree of difficulty: ( 普及+/提高 Original question:P1236 算24点 →Happy−begining\to Happy ...
- 百练,4103,踩方格
百练,4103,踩方格 普通做法:(也可以找规律) #include #include//要调用memset函数,头文件 using namespace std; int visited[50][50 ...
最新文章
- 漫画:百度从Google学来的面试题,想进大厂必备!
- C++中重载赋值运算符=
- 批量obj格式直接转gltf
- rpm(centos)软件包管理工具
- 15行代码AC——1019 数字黑洞 (20分) 甲级1069. The Black Hole of Numbers (20)(解题报告)
- asp.net matlab,ASP.NET与MATLAB混合编译以及数据传递【更新中】
- 前端基础-html-文本格式化标签
- new操作符的作用是什么
- SUN:开源在Web2.0时代
- 网络(6)-TCP/IP对拥塞控制、滑动窗口如何实现可靠性?
- 网站白痴的 ASP.NET website 学习日志
- java弹出提示框jo类_Java JobMeta.getJobLogTable方法代码示例
- 鼠标onfocus或onblur效果
- 屠蛟之路_集木成舟_ForthDay
- android 控件颜色随焦点变化实例
- django模板语言使用
- 最新黑马java十次方社交项目教程
- Print Conductor中文版
- Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage We noticed that your app requires
- 常用电路基础公式换算