[OJ]24点游戏之递归实现(JAVA)
来源:互联网 发布:sql注入绕过空格 编辑:程序博客网 时间:2024/05/22 15:42
题目描述
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利
输入:
4个1-10的数字。[数字允许重复,测试用例保证无异常数字]
输出:
true or false
输入描述:
输入4个int整数
输出描述:
返回能否得到24点,能输出true,不能输出false
输入例子:
7 2 1 10
输出例子:
true
下面为笔者给出的JAVA实现。
import java.util.Arrays;import java.util.Scanner;public class Main { static boolean isTrue = false; static void cal(int[] num, int flag, double sum) { if (flag == 3) { if (sum == 24) { // System.out.println("true"); isTrue = true; } return; } if (!isTrue) { flag++; cal(num, flag, sum + num[flag]); cal(num, flag, sum - num[flag]); cal(num, flag, sum * num[flag]); cal(num, flag, sum / num[flag]); } } public static void quanpaixu(int[] a) { // 检查排序是够完成 boolean wancheng = true; while (wancheng) { wancheng = false; for (int i = 0; i < 3; i++) { if (a[i] < a[i + 1]) { wancheng = true; break; } } if (!wancheng) break; // qiu j int j = 0; for (int i = 2; i >= 0; i--) { if (a[i] < a[i + 1]) { j = i; break; } } // 求k int min = 11; int k = 0; for (int www = j + 1; www < 4; www++) { if (min > a[www] && a[www] > a[j]) { min = a[www]; k = www; } } // 交换k,j int temp = a[k]; a[k] = a[j]; a[j] = temp; for (int www = 0; www < (4 - j - 1) / 2; www++) { temp = a[j + 1 + www]; a[j + 1 + www] = a[4 - www - 1]; a[3 - www] = temp; } cal(a, 0, 0); } } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] a = new int[4]; while (scanner.hasNext()) { for (int i = 0; i < 4; i++) { a[i] = scanner.nextInt(); } Arrays.sort(a); quanpaixu(a); if (isTrue) { System.out.println("true"); } else System.out.println("false"); } }}
0 0
- [OJ]24点游戏之递归实现(JAVA)
- 24点游戏 Java 递归
- 华为OJ(扑克牌之24点游戏)
- OJ 系列之24点游戏算法
- 华为OJ(24点游戏)
- 华为OJ之24点算法(非递归C++代码)
- 华为oj 24点游戏
- OJ---24点游戏算法
- 华为OJ训练之0022-170107-24点游戏
- 扑克牌24点游戏JAVA实现
- Java实现 扑克24点游戏src
- Java实现24点纸牌游戏
- 24点游戏(java)
- 华为oj 24点游戏算法
- 【华为OJ】【097-24点游戏算法】
- 华为OJ 初级:24点游戏算法
- 24点游戏算法-华为OJ
- 华为OJ:24点游戏算法
- http状态码详解
- 关于i++的``side effects''
- 第7周项目1:成员函数、友元函数和一般函数有区别(2)
- hihocoder1143 斐波拉契数列
- 学习Android从0开始之ActionBar(活动条)
- [OJ]24点游戏之递归实现(JAVA)
- JavaScript形参和实参
- Jsonp学习记录
- 第七周项目一-三个函数在一个程序中(5)
- 搜索0之1001
- HDU 1024 Max Sum Plus Plus(求m个不相交连续子序列最大和/01背包)
- 你看不见的幕后推手
- String 的基本用法
- C\C++精华总结