蓝桥杯-24点-搜索

news2024/9/20 6:03:46

题目

思路

--暴力递归全组合的方法。只有4个数,4种计算方式,共有4 * 3 * 2 * 1 * 4种不同的情况,可以写递归来实现。

--每次计算都是两个数之间的运算,因此4个数需要3次计算,第一次计算前有4个数,第二次有3个数,第三次有两个数,那么怎么在数组长度恒为4时,将每次计算需要使用的数字个数减少呢,就可以将a[0]来记录n个数的最后一个数的值,让前面n个数始终为有效数字。

代码

#include <iostream>
#include <vector>
#include <cmath>
using namespace std;

int a[4];
int maxr;

void dg(int n){
    if (n == 1){
        if (a[0] <= 24){
            maxr = max(maxr, a[0]);
        }
        return;
    }
    else{
        for (int i = 0; i < n - i; i++){
            for (int j = i + 1; j < n; j++){ //双重循环,正好是4 * 3 * 2 * 1种可能。 
                int b1 = a[i];
                int b2 = a[j]; //找a[i]和a[j]的替身。 
                
                a[j] = b1 + b2;
                a[i] = a[n - 1]; //将a[i]和最后一个数替换,使得有效数字逐渐减少,非常巧妙的方法。 
                dg(n - 1);
                a[j] = b1 - b2;
                a[i] = a[n - 1]; //每个递归的前面都要重新确定a[i]的值,上一次递归结束后,a[i]的值很可能改变。 
                dg(n - 1);
                a[j] = b2 - b1;
                a[i] = a[n - 1];
                dg(n - 1);
                a[j] = b1 * b2;
                a[i] = a[n - 1];
                dg(n - 1);
                if (b2 != 0 && b1 % b2 == 0){ //除数不能为0! 
                    a[j] = b1 / b2;
                    dg(n - 1);
                }
                if (b1 != 0 && b2 % b1 == 0){
                    a[j] = b2 / b1;
                    dg(n - 1);
                }
                
                a[i] = b1;
                a[j] = b2;
            }
        }
    }
}
int main(){
    int n;
    cin >> n;
    for (int i = 0; i < n; i++){
        maxr = 0; //每次循环,都要将其定为0,否则以后输出的都是最大值 
        for (int j = 0; j < 4; j++){
            cin >> a[j];
        }
        dg(4);
        cout << maxr << endl;
    }
    
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1528163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python:filter过滤器

filter() 是 Python 中的一个内置函数&#xff0c;用于过滤序列&#xff0c;过滤掉不符合条件的元素&#xff0c;返回由符合条件元素组成的新列表。该函数接收两个参数&#xff0c;一个是函数&#xff0c;一个是序列&#xff0c;序列的每个元素作为参数传递给函数进行判定&…

耐腐蚀高纯特氟龙塑料量瓶进口聚四氟乙烯材质PFA容量瓶

PFA容量瓶&#xff0c;也叫特氟龙量瓶&#xff0c;是用于配制标准浓度溶液的精确实验室器皿&#xff0c;是有着细长颈、梨形肚的耐强腐蚀平底塑料瓶&#xff0c;颈上有标线&#xff0c;常用来直接配制标准溶液和准确稀释溶液以及制备样品溶液。因其有着不易碎、材质纯净、化学稳…

Android studio开发中Virtual Device模拟器的设置和屏幕错位等问题

Android SDK开发中Virtual Device模拟器的设置和使用 本文介绍android studio2023 3.1.13版本中模拟器的设置和在cordova开发中的运行方法 对于老版android studioAVD模拟器的使用&#xff0c;参见&#xff1a;Android SDK手机应用开发中第三方模拟器、真机运行方法以及AVD模拟…

camelot pdf提取表格实践(记录)

参考&#xff1a; 巧用Python的camelot库批量提取PDF发票信息 关于文本pdf的表格抽取 AttributeError: module ‘camelot‘ has no attribute ‘read_pdf‘及类似问题解决办法 camelot 参数 https://blog.csdn.net/INTSIG/article/details/123000010 报错解决&#xff1a; Mod…

简析|创业老隋分享的人力RPO项目如何?

在当今社会&#xff0c;创业热潮席卷而来&#xff0c;各类项目层出不穷。近日&#xff0c;创业老隋分享的人力RPO项目引起了广泛关注。那么&#xff0c;这个项目究竟如何呢?是否靠谱?经过深入了解和分析&#xff0c;我认为这个项目是靠谱的。 首先&#xff0c;从项目的背景和…

2.1(TCP)

TCP—传输控制协议 是一种面向连接的可靠传输协议。可靠、有序、无丢弃和不重复。 特点&#xff1a; TCP是面向连接&#xff08;虚连接&#xff09;的传输层协议每一条TCP连接有且只能有两个端点。可靠、有序、无丢弃和不重复。TCP协议提供全双工通讯。 发送缓存 存放发送方…

Linux--Docker容器引擎

1、Docker是什么 Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的 “虚拟机”。诞生于2013年&#xff0c;最 初的发起者是dotCloud公司。后来改名为Docker Inc&#xff0c;专注于Docker相关技术和产品的开发。Docker 项目目前已经加人啊Linux基金会&#x…

迅雷网盘推广拉新怎么申请授权怎么赚钱?

迅雷网盘作为国内知名的云存储服务提供商&#xff0c;拥有庞大的用户群体和稳定的服务质量。为了进一步扩大市场份额&#xff0c;迅雷网盘推出了拉新项目&#xff0c;通过给予推广者一定的佣金&#xff0c;鼓励他们向更多的人推广迅雷网盘。 网盘功能强大&#xff1a;作为国内比…

【送外卖的你】送外卖对程序员的职业发展有影响吗

送外卖对程序员的职业发展可能会有一些影响&#xff0c;具体取决于个人情况和职业目标。以下是一些可能的影响&#xff1a; 1. 时间管理&#xff1a;送外卖可能需要花费较多的时间和精力&#xff0c;这可能会对程序员的工作时间和项目进度产生一定的影响。需要合理安排时间&…

Zookeeper(三)一致性算法Paxos

目录 1. Paxos算法是什么2. Paxos算法产生背景2.1. 拜占庭将军问题2.2. Paxos算法由来2.3 产生背景 3. 算法详解3.1 角色 & 提案提案 (Proposal)角色 3.2. 问题描述3.2.1. 一致性算法的前置条件3.2.2. 不同角色通过发送消息进行通信 3.3. 推导过程3.3.1. 只有一个Acceptor3…

【四 (6)数据可视化之 Grafana安装、页面介绍、图表配置】

目录 文章导航一、Grafana介绍[✨ 特性]二、安装和配置1、安装2、权限配置&#xff08;账户/团队/用户&#xff09;①用户管理②团队管理③账户管理④看板权限 3、首选项配置4、插件管理①数据源插件②图表插件③应用插件④插件安装方式一⑤安装方式二 三、数据源管理1、添加数…

程序计数器

程序计数器 JVM中的程序计数器(Program Counter Register)并非是广义上所指的物理寄存器&#xff0c;是对物理PC寄存器的一种抽象模拟 PC寄存器(程序计数器) PC寄存器用来存储指向下一条指令的地址&#xff0c;也即将要执行的指令代码。由执行引擎读取下一条指令。 它是一块很…

机器人在果园内行巡检仿真

文章目录 创建工作空间仿真果园场景搭建小车模型搭建将机器人放在仿真世界中创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws仿真果园场景搭建 cd ~/catkin_ws/src git clone https://gitcode.com/clearpathrobotics/cpr_gazebo.git小车模型搭建 DiffBot是一种具有两个…

视频技术2:把rtsp转为各种格式,包括webrtc

前题是启动ABLMediaServer&#xff0c;把ini里的hls_enable1 1、添加rtsp到视频服务器 http://127.0.0.1:7088/index/api/addStreamProxy?secret035c73f7-bb6b-4889-a715-d9eb2d1925cc&vhost_defaultVhost_&appMedia&streamCamera_00001&enable_hls1&ur…

HTML5+CSS3小实例:具有悬停效果的3D闪耀动画

实例:具有悬停效果的3D闪耀动画 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, init…

电学基础知识

目录 电流 前言 电流的产生 电流的单位安培&#xff08;A&#xff09; 电路和电池 开路和闭路 电灯泡原理 对电池容量的理解 毫安时 毫瓦时 直流电和交流电 AC交流电 DC直流电 直流电和交流电对比 电压 对电器的电压和电流的理解 电阻 电压电阻电子的关系 欧…

Vulnhub - Raven2

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog Raven2 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/raven-2,269/ 0x01 信息收集 Nmap扫描…

DC-DC 变换集成电路芯片MC34063A,内含温度补偿的参考电压源(1.25V)、比较器、能有效限制电流及控制工作周期的振荡器,驱动器及大电流输出开关管等

MC34063A 为一单片 DC-DC 变换集成电路&#xff0c;内含温度补偿的参考电压源&#xff08;1.25V&#xff09;、比较器、能有效限制电流及控制工作周期的振荡器&#xff0c;驱动器及大电流输出开关管等。外配少量元件&#xff0c;就能组成升压、降压及电压反转型 DC-DC 变换器。…

三菱FX3U/FX5U的采集方式有哪些?如何快速采集?

在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;扮演着至关重要的角色。三菱FX3U和FX5U作为三菱电机公司推出的两款经典PLC产品&#xff0c;广泛应用于各种工业自动化控制系统中。为了更好地实现对这些PLC设备的数据采集与远程控制&#xff0c;我们引…

危险废物处理不容忽视,环保企业责任在肩|中联环保圈

铝熔炼企业产生的大量铝灰渣&#xff0c;属于危险废物&#xff0c;其处理问题引起了广泛关注。在江西省抚州市&#xff0c;生态环境局副局长祝志辉强调&#xff1a;“铝灰渣的处理必须委托有资质的第三方进行。”他进一步解释说&#xff0c;铝灰的主要成分为金属铝和铝氧化物&a…