24点游戏算法

本文介绍了一种解决24点游戏的算法实现方案,该算法接收四个1到10之间的数字作为输入,并通过加、减、乘、除运算尝试得到结果24。文章提供了完整的Java代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

24点游戏算法
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利
输入:
4个1-10的数字。[数字允许重复,测试用例保证无异常数字]
输出:
true or false


import java.util.*;


public class Main{


public static void main(String args[]) {


    Scanner sc = new Scanner(System.in);
    while(sc.hasNextLine()) {
    String s = sc.nextLine();
    String[] input = s.split(" ");
    int[] inputNums = new int[input.length];
    for(int i=0;i<input.length;i++) {
    inputNums[i] = Integer.parseInt(input[i]);
    }
    int[] temp = new int[input.length];
    for(int i=0;i<temp.length;i++) {
    temp[i] = 0;
    }
    int num = 0;
    String result = "";
    if(check(inputNums,temp,num)) {
    result = "true";
    }
    else {
    result = "false";
    }
    System.out.println(result);    
    }
    
}

public static boolean check(int[] inputNums,int[] temp,double num){
       for (int i = 0; i < inputNums.length; i++) {
        if(temp[i]>0) {
        continue;
        }
        else {
               temp[i] = 1;
              
               if (check(inputNums, temp,num + inputNums[i])
                       || check(inputNums,temp ,num - inputNums[i])
                       || check(inputNums,temp ,num * inputNums[i])
                       || check(inputNums, temp,num / inputNums[i])) {
                  
                   return true;
               }
               temp[i] = 0;
           }
       }
        if(num-24==0)
            return true;
        else
            return false;
   }



}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值