• java实现取球游戏


    /*
    今盒子里有 n 个小球,A、B 两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,
    也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。
    我们约定:
    每个人从盒子中取出的球的数目必须是:1,3,7 或者 8 个。
    轮到某一方取球时不能弃权!
    A 先取球,然后双方交替取球,直到取完。
    被迫拿到最后一个球的一方为负方(输方)
    请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A 是否能赢?
    程序运行时,从标准输入获得数据,其格式如下:
    先是一个整数 n(n<100),表示接下来有 n 个整数。然后是 n 个整数,每个占一行(整数<10000),表示初始球数。
    程序则输出 n 行,表示 A 的输赢情况(输为 0,赢为 1)。
    例如,用户输入:
    4
    1
    2
    10
    18
    则程序应该输出:
    0
    1
    1
    0
    */
    package Question10_19;
    import java.util.Scanner;
    public class Question18Think2MustRemember {
    public static boolean array[]=new boolean[10020];
    38
    public static void main(String[] args) {
    array[0]=true;
    for (int i = 1; i < array.length; i++) {
    array[i]=(i>=8&&!array[i-8])||(i>=7&&!array[i-7])||(i>=3&&!array[i-3])||(i>=1&&!array[i-1]);
    }
    Scanner scanner=new Scanner(System.in);
    int n=scanner.nextInt();
    int total;
    scanner.nextLine();
    while ((n--)>0) {
    total=scanner.nextInt();
    System.out.println(array[total]?1:0);
    }
    }
    }
    
    

    运行结果:
    4
    1
    2
    10
    18
    输出结果:
    0
    1
    1
    0

  • 相关阅读:
    C# 温故而知新:Stream篇(—)
    C# 温故而知新:Stream篇(三)
    Unity教程之Unity Attribute的使用总结
    鹅厂分享会丨面向Unity程序员的Android快速上手教程
    【Unity】编辑器小教程
    浅析Unity 坐标系
    C# 温故而知新:Stream篇(五)
    C# 温故而知新:Stream篇(二)
    unity 协程原理与线程的区别
    简单获取2月天数
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947210.html
Copyright © 2020-2023  润新知