首页 > 其他分享 >42 点问题

42 点问题

时间:2024-12-08 17:54:34浏览次数:2  
标签:操作数 Scanner int ArrayList 42 问题 new

42 点问题

题目描述:

众所周知在扑克牌中,有一个老掉牙的游戏叫做 24 点,选取4张牌进行加减乘除,看是否能得出 24 这个答案。
现在小蓝同学发明了一个新游戏,他从扑克牌中依次抽出6张牌,注意不是一次抽出,进行计算,看是否能够组成 42 点,满足输出 YES,反之输出 NO。
最先抽出来的牌作为第一个操作数,抽出牌做第二个操作数,运算结果在当作第一个操作数,继续进行操作。
除不尽的情况保留整数。
请设计一个程序对该问题进行解答。

样例:

输入:

K A Q 6 2 3

输出:

YES
  • 思路分析:

扑克牌中的数1~K,所以先判断字符,再枚举,最后再枚举运算符,利用集合存储结果。

  • 解答:
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] a = new int[6]; //存储输入的数字
        ArrayList<ArrayList<Integer>> list = new ArrayList<>();
        for (int i=0;i<6;i++){
            String n;
            n = scanner.next();
            if (n.charAt(0) == 'A')
                a[i] = 1;
            else if (n.charAt(0) == 'J')
                a[i] = 11;
            else if (n.charAt(0) == 'Q')
                a[i] = 12;
            else if (n.charAt(0) == 'K')
                a[i] = 13;
            else
                a[i] = (n.charAt(0) - '0'); //0的ASCII码为48,之后依次递增,减去之后即为本身
        }
        list.add(new ArrayList<>());
        list.get(0).add(a[0]);
        for (int i=1;i<=5;i++){
            list.add(new ArrayList<>()); //存放1~5次的运算结果
            for (int j=0;j<list.get(i-1).size();j++){ //i=0,j=1时,表示第一次运算(加减乘除)的结果
                list.get(i).add(list.get(i-1).get(j) + a[i]);
                list.get(i).add(list.get(i-1).get(j) - a[i]);
                list.get(i).add(list.get(i-1).get(j) * a[i]);
                list.get(i).add(list.get(i-1).get(j) / a[i]); //扑克中没有0,所以不用考虑除数为0的情况
            }
        }
        int flag = 0;
        for (int i=0;i<list.get(5).size();i++){
            if (list.get(5).get(i) == 42){
                flag = 1;
                break;
            }
        }
        if (flag == 1)
            System.out.println("YES");
        else
            System.out.println("NO");
    }
}

标签:操作数,Scanner,int,ArrayList,42,问题,new
From: https://www.cnblogs.com/codyxz/p/18593611

相关文章

  • php无法正常修改网站,如何排查和解决PHP网站修改问题
    如果您在修改PHP网站时遇到问题,可以按照以下步骤排查和解决问题:检查错误日志:查看服务器的错误日志文件,寻找具体的错误信息。这有助于确定问题的根本原因。确认文件权限:确保网站文件和目录的权限设置正确。通常,文件权限应设置为644,目录权限应设置为755。检查PHP版本:确保您的服......
  • 修改网站后提示证书错误,解决SSL证书问题的全面指南
    在修改网站后遇到证书错误通常是由于SSL证书配置不当引起的。以下是详细的排查和解决步骤:检查证书安装:确认SSL证书是否正确安装在服务器上。可以通过浏览器访问网站,查看证书详情。使用在线工具(如SSLLabsSSLTest)检查证书的有效性和配置情况。验证证书链:确保中间证书......
  • JDK 18 及以上使用标准输出流中文输出乱码问题
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/来源:終わり群星问题描述起因是tomcat调用servlet输出的System.out.println(也就是所说的控制台输出流)中文乱码,但是其......
  • 2024-2025-1 20241421刘庆安《计算机基础与程序设计》第十一周学习总结
    这个作业属于哪个课程2024-2025-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK11这个作业的目标网络拓扑、云计算、网络安全、Web、HTML,CSS,Javascript、XML作业正文本博客链接https://www.cnblogs.com/......
  • 学期(2024-2025-1) 学号(20241420) 《计算机基础与程序设计》第十一周学习总结
    学期(2024-2025-1)学号(20241420)《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第十一周作业)这个作业的目标<计算机科......
  • 2024-2025-1 20241423 《计算机基础与程序设计》第十一周学习总结
    作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP)这个作业要求在哪里2024-2025-1计算机基础与程序设计第一周作业这个作业的目标计算机网络、网络拓扑、云计算、网络安全、Web、HTML,CSS,Javas......
  • 2024-2025-1 20241425 《计算机基础与程序设计》第11周学习总结
    2024-2025-120241425《计算机基础与程序设计》第11周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13274这个作业要求在哪里https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP/homework/13274这......
  • java前后端开发常见问题汇总
    不同的模板引擎在作为接口时候,有些不需要.html后缀,有些需要.html左外连接左边不动,右边连接上去左外连接在多表查询时候效率更高java的mapper文件使用#符号的话,要在mapper接口上添加@model标签,然后用model.xxx引用默认值都是后端设置好然后注入前端FUNCTIONwork.COUNTdoe......
  • 2024-2025-1 20241428 《计算机基础与程序设计》第十一周学习总结
    学期(如2024-2025-1)学号(如:20241428)《计算机基础与程序设计》第十一周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业的目标HTML,CSS,Javascript,计算机网络,网络拓扑,云计算作业正文https://i.cnblogs.com/posts/edit......
  • SQL语句中AND与OR操作符的优先级问题
    在SQL中,当AND和OR操作符同时出现时,优先级的处理可能会导致查询结果与预期不符。为了说明这一问题,我们可以看一个实际的例子。假设需要查询价格在10美元及以上,且由DLL01或BRS01制造的所有产品。可以使用如下SQL语句:SELECTprod_name,prod_priceFROMProductsWHEREvend_i......