首页 > ACM题库 > HDU-杭电 > HDU 1076 An Easy Task-C++-模拟-[解题报告] C++
2013
11-27

HDU 1076 An Easy Task-C++-模拟-[解题报告] C++

An Easy Task

问题描述 :

Ignatius was born in a leap year, so he want to know when he could hold his birthday party. Can you tell him?Given a positive integers Y which indicate the start year, and a positive integer N, your task is to tell the Nth leap year from year Y.

Note: if year Y is a leap year, then the 1st leap year is year Y.

输入:

The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains two positive integers Y and N(1<=N<=10000).

输出:

For each test case, you should output the Nth leap year from year Y.

样例输入:

3
2005 25
1855 12
2004 10000

样例输出:

2108
1904
43236
Hint

We call year Y a leap year only if (Y%4==0 && Y%100!=0) or Y%400==0.

题目大意:输入n,m。其中n为其实年份。然后输出以n作为其实年份的第m个闰年生日所在的年份。

 

解题思路:常识题。闰年的判断条件为:(Y%4==0 && Y%100!=0) or Y%400==0.


代码如下:


/*
 * 1076_1.cpp
 *
 *  Created on: 2013年8月10日
 *      Author: Administrator
 */

#include <stdio.h>

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		int year,num;
		scanf("%d%d",&year,&num);
		while(num){
			if((year%4 == 0 && year%100 !=0)||(year%400==0)){
				num--;
			}
			year++;
		}

		printf("%d\n",year-1);
	}
}

  1. 换句话说,A[k/2-1]不可能大于两数组合并之后的第k小值,所以我们可以将其抛弃。
    应该是,不可能小于合并后的第K小值吧

  2. 很高兴你会喜欢这个网站。目前还没有一个开发团队,网站是我一个人在维护,都是用的开源系统,也没有太多需要开发的部分,主要是内容整理。非常感谢你的关注。