题址:http://acm.hdu.edu.cn/showproblem.php?pid=1076
Problem Description
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.
Input
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).
Output
For each test case, you should output the Nth leap year from year Y.
Sample Input
3
2005 25
1855 12
2004 10000
Sample Output
2108
1904
43236
简单题,判断某年之后的第N个闰年,先写的那个while(1)里面是判断那一年是否是闰年,不是闰年的话+1,加到是闰年为止跳出来,作为他的第一个闰年,接下来查找判断剩下的N-1个闰年,每次+4,通过isLeap()函数判断是否是闰年,i加到N-1个闰年了结束,输出年份即是第N个闰年。
AC代码:
#include<stdio.h>
#include<string.h>
int isleap(int y)
{
if((y%4==0 && y%100!=0) || y%400==0) return 1;
else return 0;
}
int main()
{
int n,i,Y,N;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&Y,&N);
while(1)
{
if(isleap(Y)==1) break;
else Y++;
}
for(i=0;i<N-1;)
{
Y+=4;
if(isleap(Y)==1) i++;
}
printf("%d\n",Y);
}
return 0;
}