2017百度之星初赛(A):今夕何夕

思路

 基姆拉尔森公式的应用,注意一下2月29号的情况

import java.util.Scanner;
public class Main {
    public static int day(int y,int m,int d) {
        if(m == 1 || m == 2) {
            m += 12;
            y -= 1;
        }
        int w=(d + 2*m + 3*(m + 1)/5 + y + y/4 - y/100 + y/400+ 1) % 7;
        return w;
    }
    public static boolean runnian(int a) {
        if((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)
            return true;
        return false;
    }
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int t,y,m,d;
        t = cin.nextInt();
        while((t--) != 0) {
            String str = cin.next();//录入字符串
            String[] strs = str.split("-");//使用正则表达式进行分割
            y = Integer.parseInt(strs[0]);
            m = Integer.parseInt(strs[1]);
            d = Integer.parseInt(strs[2]);
            boolean flag = false;
            if(m == 2 && d == 29)
                if(runnian(y))
                    flag = true;
            int x = day(y,m,d);
            for(int i = y + 1;i <= 10000;i++) {
                if(flag) {
                    if(day(i,m,d) == x && runnian(i)) {
                        System.out.println(i);
                        break;
                    }
                } else {
                    if(day(i,m,d) == x) {
                        System.out.println(i);
                        break;
                    }
                }
            }
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏从零开始学 Web 前端

从零开始学 Web 之 JavaScript(四)数组

arguements 是伪数组:不能修改长短的数组。(可以修改元素,但是不能变长变短)

9520
来自专栏Python小屋

Python编程常见出错信息及原因分析(2)

(1)缩进错误 演示代码: >>> if 5>3: print('5>3') SyntaxError: expected an indented block >...

44470
来自专栏Java帮帮-微信公众号-技术文章全总结

Java基础-07(02).总结private,this,封装,static,成员方法变量,局部变量匿名对象

9:面向对象的练习题(掌握) (1)标准的手机类的定义和测试 (2)Demo类有求和方法,Test类进行测试。 什么时候定义成员变量? 当该变量是用来描...

37130
来自专栏Petrichor的专栏

python: append & extend 异同

  经过试验,总结出 python 中 append 和 extend 的异同点如下表:

13020
来自专栏Golang语言社区

JS基础随笔(菜鸟必看篇)

JavaScript中的数据类型 简单(基本)数据类型:Number、String、Boolean、Undefined、Null 复杂(引用)数据类型: Obj...

37390
来自专栏Crossin的编程教室

【Python 第68课】函数的参数传递(2)

接着上一次的内容,来介绍一种更加灵活的参数传递方式: def func(*args) 这种方式的厉害之处在于,它可以接受任意数量的参数。来看具体例子: def...

27160
来自专栏Java帮帮-微信公众号-技术文章全总结

第十五天 常用API-object&string&stringbuilder&stringbuffer【悟空教程】

第十五天 常用API-object&string&stringbuilder&stringbuffer【悟空教程】

13410
来自专栏desperate633

[编程题] 偶串分析代码

输出描述: 输出一个整数,表示删除之后能得到的最长偶串长度是多少。保证测试数据有非零解

8310
来自专栏SeanCheney的专栏

Python 2.7.x 与 Python 3.x 的不同点1 __future__模块2 print函数3 整除4 Unicode5 xrange模块6 Python3中的range对象的__con

本文翻译自:《Key differences between Python 2.7.x and Python 3.x》 许多 Python 初学者想知道他们应该...

32550
来自专栏个人随笔

Java 中的异常处理机制

生活中的异常:  不能够完整而顺利的完成一些工作  根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出:   异常处理:   方式:     ...

364100

扫码关注云+社区

领取腾讯云代金券