C - An Easy Task

    技术2022-07-12  87

    C - An Easy Task

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u

    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

    Hint

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

    题意分析:

    这道题本身没有什么难度,就是求输入的年份之后第N个闰年是那年。

    解题思路:

    这道题唯一的问题就是判断闰年,题目的提示中还给出了判断条件。根据判断条件编码就完了,是闰年就加一,最后到N时就结束循环,输出年份。

    编码:

    #include <bits/stdc++.h> using namespace std; int main() { int y, n, t; cin >> t; while (t--) { cin >> y >> n; while (n > 0) { if (y % 4 == 0 && y % 100!=0) { n--; } else if (y % 400 == 0) { n--; } y++; } cout << --y << endl; } return 0; }

    最后:

    这道题本身是一次过,但是在测试的时候自己还遇到了一些小问题,年数循环的时候的y++会导致最后的答案总是+1,所以强制输出了--y。

    Processed: 0.010, SQL: 9