算法设计

注意老师的查重系统哦~

Problem A. 伊甸园日历游戏

时间限制 1000 ms
内存限制 128 MB

题目描述

Adam和Eve玩一个游戏,他们先从1900.1.1到2001.11.4这个日期之间随意抽取一个日期出来。然后他们轮流对这个日期进行操作:

1 : 把日期的天数加1,例如1900.1.1变到1900.1.2

2 : 把月份加1,例如:1900.1.1变到1900.2.1

其中如果天数超过应有天数则日期变更到下个月的第1天。月份超过12则变到下一年的1月。而且进行操作二的时候,如果有这样的日期:1900.1.31,则变成了1900.2.31,这样的操作是非法的,我们不允许这样做。而且所有的操作均要考虑历法和闰年的规定。

谁先将日期变到2001.11.4谁就赢了。

每次游戏都是Adam先操作,问他有没有必胜策略?

输入数据

一个测试点。多组数据。
第一行为数据组数。
接下来一行 X Y Z 表示 X 年 Y 月 Z 日

输出数据

输出“YES”or“NO”表示亚当是否有必胜策略

样例输入

3
2001 11 3
2001 11 2
2001 10 3

样例输出

YES
NO
NO

样例说明

建议先把所有情况都算出来_

采用分治思想,分析输出的数据特征 即可得出正确的结论

// Author : 农村娃的成长之路
// Time : 2019/9/28 17:22
// File : Calendargame.java
// Describe : 伊甸园日历游戏
// IDE : IntelliJ IDEA


```java
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int N = in.nextInt();
        for (int i = 0; i < N; i++) {//最外层控制循环
            int year = in.nextInt();
            int month = in.nextInt();
            int day = in.nextInt();
            if ((month == 9 && day == 30) || (month == 11 && day == 30) || (month + day) % 2 == 0) {
                System.out.println("YES");
            } else {
                System.out.println("NO");
            }
        }//for N
        in.close();
    }
}

我是菜鸟,也是练习着写博客 勿喷哈~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值