当前位置: 首页 > news >正文

1789:算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

题意

输入多组数据,判断每组数据的四个数用加减乘除能不能得到24。

思路

用数组a1存储当前数字,整数n表示当前数字个数。如果 n==1且唯一数字等于24(考虑浮点精度),返回 true;否则返回 false。遍历所有数字对(i, j),对每对数字尝试所有运算符(+,-,*,/),将结果放入新数组 a2(包含剩余数字和运算结果),然后递归处理a2。

代码

using namespace std;
double a[5];
bool f(double a1[],int n){//递归函数double a2[5];int b;if(n==1&&abs(a1[0]-24.0)<0.000001){如果只剩一个数字,检查是否等于24(考虑浮点精度)return true;}if(n==1){//只剩一个数字但不是24return false;}//遍历所有可能的数字对组合for(int i=0;i<n-1;i++){for(int j=i+1;j<n;j++){b=1;//从a2[1]开始填充(a2[0]将存放运算结果)for(int k=0;k<n;k++){if(k!=i&&k!=j){a2[b++]=a1[k];}}//六种运算方式(减法和除法有两种顺序)a2[0]=a1[i]+a1[j];if(f(a2,n-1)==true) return true;a2[0]=a1[i]-a1[j];if(f(a2,n-1)==true) return true;a2[0]=a1[j]-a1[i];if(f(a2,n-1)==true) return true;a2[0]=a1[i]*a1[j];if(f(a2,n-1)==true) return true;a2[0]=a1[i]/a1[j];if(f(a2,n-1)==true) return true;a2[0]=a1[j]/a1[i];if(f(a2,n-1)==true) return true;}}//所有组合都尝试过了,都无法得到24return false;
}
int main(){while(1){//无限循环,直到输入4个0cin>>a[0]>>a[1]>>a[2]>>a[3];if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0){break;}//调用递归函数判断能否得到24if(f(a,4)) cout<<"YES";else cout<<"NO";cout<<endl;}return 0;
}
http://www.sczhlp.com/news/119715/

相关文章:

  • 南宁网络企业网站微商运营推广
  • 南平 网站建设淘宝天猫网上购物商城
  • linux做网站配置上海信用网企业查询
  • 平板网站建设wordpress4.8是什么
  • 视频类网站开发百度收录关键词查询
  • 在线做家装设计的网站985短网址生成
  • wordpress 多用户 域名高级seo培训
  • 网站建设公司格国外装修网站模板
  • wordpress 多站点 拷贝网站建设教程试题
  • 做网站筹钱需要多少钱如何申请百度定位地址
  • 网站平台怎么建立的怎么推广一个产品
  • 大型网站开发 cwordpress标签路径
  • 流行的 3D 文件格式及其用途指南
  • CentOS7.9上安装MySQL8.4
  • 网站开发后端怎么开发明年做那个网站致富
  • wordpress html主页张家港网站网络优化
  • 百度做个网站要多少钱wordpress 首页 不显示归档
  • 顾客评价网站wordpress的系统构成图
  • 常德举报网站ai建筑设计平台
  • 网站服务器 免费的吗网站服务内容
  • 铁头山羊stm32-HAL库 - 实践
  • 安徽美丽乡村建设网站wordpress添加单页模板
  • 做网站什么框架方便长春新建设
  • h5商城网站怎么建设wordpress自动推送token
  • 手机wap网站开发与设计国家企业信用信息公示系统官网河北
  • 网站建设策划方案书论文大型图片库网站建设
  • 手机上有趣的网站福州网站改版哪家好
  • 让自己的网站收录百度用户服务中心在线申诉
  • 推广网站的方法有哪些佛山网站优化排名推广
  • 沈阳公司做网站wordpress全文