CCF 201509-2 日期计算

试题编号: 201509-2
试题名称: 日期计算
时间限制: 1.0s
内存限制: 256.0MB
问题描述:

问题描述

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

输入格式

  输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。
  输入的第二行包含一个整数dd在1至365之间。

输出格式

  输出两行,每行一个整数,分别表示答案的月份和日期。

样例输入

2015
80

样例输出

3
21

样例输入

2000
40

样例输出

2
9

#include<iostream>
#include<algorithm>
using namespace std;
int month[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
bool isyear(int y) {
	if ((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
		return true;
	return false;
}
int main() {
	int y, d;
	int flag = 1;
	int i;
	while (cin >> y >> d) {
		if (isyear(y) == true)flag = 1;
		else flag = 0;
		i = 0;
		while (d > month[i]) {
			if (i != 1) d -= month[i++];
			else d -= (month[i++] + flag);
		}
		cout << i + 1 << endl << d << endl;
	}
	return 0;
}

首先做一个判断该年是否为闰年,然后确定2月是多少天,然后一个循环来进行判断是多少号,

猜你喜欢

转载自blog.csdn.net/curry3030/article/details/82529904