CCF 201509-2 日期计算(100分)

试题编号: 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

运行结果:

试题名称 代码长度 编程语言 评测结果 得分 时间使用 空间使用
日期计算 341B C++ 正确 100 15ms 508.0KB

思路分析:注意闰年。

#include 
using namespace std;
int main()
{
	int year, day;
	cin >> year >> day;
	int monthday[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
		monthday[1] = 29;
	for (int i = 0; i < 12; ++i)
	{
		day = day - monthday[i];
		if (day <= 0)
		{
			cout << i + 1 << endl << day + monthday[i];
			return 0;
		}
	}
}

 

你可能感兴趣的:(CCF,CCF)