小明出生在一个闰年,他想知道什么时候可以过生日,你能告诉他吗?
给你一个正整数Y,表示起始年份,和一个正整数N,你的任务是告诉小明从Y年开始第N个闰年是哪一年。
注意:如果Y就是闰年,那么第一个闰年就是Y。
输入
输入的第一行为一个整数T,表示测试数据的组数。
每一组输入包含两个正整数Y和N(1<=N<=10000)。
输出
对于每组输入,输出从Y年开始第N个闰年是哪一年。
样例输入 复制
3
2005 25
1855 12
2004 10000
样例输出 复制
2108
1904
43236
思路:
1.首先要判断给出年份是否为闰年
2.若不为闰年要先找到第一个闰年,再找后面的n-1个闰年
3.难点:加一个4之后不一定是闰年,还要进行判断------>>>>>可写一个函数用来判断,并循环使用n-1次,从而找到后面的n-1个
#include<bits/stdc++.h>
using namespace std;
int leap(int x) //判断闰年
{if((x%4==0&&x%100!=0)||(x%400==0))return 1;elsereturn 0;
}
int fun(int y) //找下一个闰年
{y=y+4;while(leap(y)==0) //必须用while循环,不能用if,因为加4之后也不一定是闰年{y=y+4;}return y;
}
int main()
{int t;cin>>t;while(t--){int y,n;cin>>y>>n;while(leap(y)==0) //当给出年份不是闰年时,找第一个闰年{y=y+4-y%4; }for(int i=1;i<n;i++) //因为第一个闰年已有,因此只需循环n-1次{y=fun(y);}cout<<y<<endl;}return 0;
}