算法训练 24点游戏

  • 1.问题描述
  • 2.输入格式
  • 3.输出格式
  • 4.分析
  • 5.代码

第一版:蓝桥杯版(搜索算法)

后面会出力扣版的24点游戏的代码分析

1.问题描述

  1. 问题:

24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加、减、乘、除以及括号想办法得到24。

  1. 举例:

((A*K)-J)Q等价于((113)-11)*12=24
  加减乘不用多说了,但除法必须满足能整除才能除!这样有一些是得不到24点的,所以这里只要求求出不超过24的最大值。

2.输入格式

输入第一行N(1<=N<=5)表示有N组测试数据。每组测试数据输入4行,每行一个整数(1到13)表示牌值。

3.输出格式

每组测试数据输出一个整数,表示所能得到的最大的不超过24的值。

4.分析

2022/4/15 补

5.代码

import java.util.Scanner;public class Main {static int n,vis[],arr[],max,pos;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();int[][] num = new int[n][4];vis = new int[4];arr = new int[4];for(int i = 0;i < n ;i++)for(int j = 0;j < 4;j++)num[i][j] = sc.nextInt();for(int i = 0;i < n;i++){max = 0;Dfs(1,num[i]);System.out.println(max);}}static int VF(int a,int b,int h){switch(h){case 1:return a+b;case 2:return a-b;case 3:return a*b;}if(b == 0) return 1000;if(a % b != 0) return 1000;return a/b;}static void Dfs(int step,int[] num) {for(int i = 0;i < 4;i++){if(vis[i] == 0){vis[i] = 1;arr[pos++] = num[i];Dfs(step+1,num);vis[i] = 0;arr[--pos] = 0;}}if(step > 4){for(int i = 1;i <= 4; i++)for(int j = 1;j <= 4;j++)for(int k = 1;k <= 4;k++){int tp1,tp2,tp3;tp1 = VF(arr[0],arr[1],i);tp2 = VF(tp1,arr[2],j);tp3 = VF(tp2,arr[3],k);if(tp3 <= 24) max = Math.max(max, tp3);tp1 = VF(arr[1],arr[2],j);tp2 = VF(arr[0],tp1,i);tp3 = VF(tp2,arr[3],k);if(tp3 <= 24) max = Math.max(max, tp3);tp1 = VF(arr[1],arr[2],j);tp2 = VF(tp1,arr[3],k);tp3 = VF(arr[0],tp2,i);if(tp3 <= 24) max = Math.max(max, tp3);tp1 = VF(arr[0],arr[1],i);tp2 = VF(arr[2],arr[3],k);tp3 = VF(tp1,tp2,j);if(tp3 <= 24) max = Math.max(max, tp3);tp1 = VF(arr[2],arr[3],k);tp2 = VF(arr[1],tp1,j);tp3 = VF(arr[0],tp2,i);if(tp3 <= 24) max = Math.max(max, tp3);}}}
}

算法训练 24点游戏相关推荐

  1. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  2. 蓝桥杯 试题 算法训练 24点 C++ 详解

    问题描述: 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24 ...

  3. ACM. HJ67 24点游戏算法 679. 24 点游戏

    HJ67 24点游戏算法 ●● 679. 24点游戏 ●●● 描述 给定一个长度为4的整数数组 cards .你有 4 张卡片,每张卡片上都包含一个范围在 [1,9] 的数字.您应该使用运算符 ['+ ...

  4. 试题 算法训练 24点

    资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13 ...

  5. 试题 算法训练 24点 蓝桥杯 Java

    资源限制 时间限制:1.0s   内存限制:256.0MB 问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13 ...

  6. 每日算法 - 列出24点游戏的所有解法

    目录 题目 代码 相关题目 题目 输入四张扑克牌,输出所有可能的形成24点的表达式. 代码 import java.util.HashMap; import java.util.Map; import ...

  7. 传球游戏c语言,[蓝桥杯][算法训练VIP]传球游戏-题解(Java代码)

    解题思路: 注意事项: 参考代码: import java.util.Scanner; public class Main { static int n; public static void mai ...

  8. 蓝桥杯算法训练 数字游戏 组合数和暴力两种解法

    试题 算法训练 数字游戏 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个1-N的排列a[i],每次将相邻两个数相加,得到新序列,再对新序列重复这样的操作,显然每次得到的序列 ...

  9. python编写24点游戏

    1.题目要求 24点游戏是经典的纸牌益智游戏. 常见游戏规则: 从扑克中每次取出4张牌.使用加减乘除,第一个能得出24者为赢.(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决2 ...

最新文章

  1. C语言经典例99-文件内容合并和排序
  2. svn导出java项目_【SVN】导出项目后报错汇总
  3. 使用tcpdump,adb进行手机抓包
  4. java 怎么从性能上优化代码_月薪上万做好这一步:程序员职场中必须掌握的的Java代码性能优化技巧...
  5. HDU 2045 不容易系列之(3)―― LELE的RPG难题(递推)
  6. 在linux环境中配置tomcat
  7. DCMTK3.6.0 安装失败的说明
  8. ASP.NET使用UpdatePanel实现AJAX
  9. c++读取文本文件(txt)代码
  10. 国科大学习资料--机器人学导论(张正涛)--2014年期末考试试卷(含答案)
  11. 用java编写某年某月的日历_Java-查询某年某月一个月的数据,以日历的形式展示。...
  12. 我的HTC G16 CHACHA A810e版手机如何解锁和一键root的
  13. 常用数学希腊符号读法
  14. premiere调色预设怎么用
  15. CJT长江连接器公司的A2541系列线对板连接器PCB封装库
  16. Python练习题答案: IRR计算 - 盈利能力的评价【难度:2级】--景越Python编程实例训练营,1000道上机题等你来挑战
  17. 安全检查如何确保建筑幕墙施工的安全管理呢
  18. leetcode 1184 看起来很吓人,其实很简单的题目
  19. MP40N120-ASEMI场效应管MP40N120
  20. 奶茶封口膜-市场现状及未来发展趋势

热门文章

  1. 人工智能:为什么很多机器学习和深度学习的论文复现不了?
  2. win10安装Sql Server2019教程
  3. pandas取整 pandas取整数 pandas 转成int
  4. java 持久监听blockqueue的变化_Curator目录监听
  5. 京东移动端首页-流式布局
  6. Basler驱动如何彩色相机白平衡说明
  7. logstash读取kafka所有topics 自动创建es 索引
  8. 实现输入月份号输出对应的英文月份
  9. LRC歌词原理和实现高仿Android网易云音乐
  10. 20年3月27日,Github被攻击。我的GitPage博客也挂了,紧急修复之路,也教会你搭建 Jekyll 博客!