CCF201509-2(python)

问题描述
  给定一个年份y和一个整数d,问这一年的第d天是几月几日?
  注意闰年的2月有29天。满足下面条件之一的是闰年:
  1) 年份是4的整数倍,而且不是100的整数倍;
  2) 年份是400的整数倍。

输入格式
  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数d,d在1至365之间。
输出格式
  输出两行,每行一个整数,分别表示答案的月份和日期。
样例输入
2015
80
样例输出
3
21
样例输入
2000
40
样例输出
2
9

思路:
将非闰月的每月天数存入列表中
先判断该年是否为闰年,若是则将列表中的二月改为29天
设一个循环让输入的天数去不断-列表里的天数,同时记录减了几个月,直到两则相减小于0则将这次的天数为该月的第几天。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
m = int(input())
d=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (n % 4 == 0 and n % 100 != 0) or n % 400 == 0:
d[1] = 29
mon = 1
for i in d:
if m - i > 0:
m = m - i
mon = mon + 1
else:
break
print(mon)
print(m)