注意老师的查重系统哦~
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();
}
}