统计闰年

1.【问题】

【问题描述】
输入两个年份 x 和 y,统计并输出公元 x 年到公元 y 年之间的所有闰年数(包括 x 年和 y 年),1≤x≤y≤3000。
【输入格式】
一行两个正整数表示 x 和 y,之间用一个空格隔开。
【输出格式】
一行一个正整数,表示公元 x 年到公元 y 年之间的所有闰年数。
【输入样例】
2000 2004
【输出样例】
2

2.【问题分析】

1.求一个整数年份是否为闰年,由于多次判断使用,可以封装为一个函数

  1)我们知道闰年为:4年一闰,百年不闰,400年又闰,就是说能被整除但不能被100整除的数是闰年,被100整除的数中同时被400整除的数也是闰年

       2) 由1)我们得知,把所有的数可以分为两部分,被100整除和不能被100整除,分别求闰年并累计就是所有的闰年数

       3) 由2)得知,如下条件都是闰年:year%4==0&&year%100!=0||year%400==0

2.定义一个计数器整形变量,循环从开始年份到结束年份,分别判断是否为是否为闰年,如果是就累加,否则不处理

3.【程序及备注】

#include <iostream>
using namespace std;
bool rn(int n){
    if((n % 4 == 0) && (n % 100 != 0) || (n % 400 == 0)) return true;
    else return false;
}
int main(){
    int x,y,t = 0;
    cin >> x >> y;
    for(int i = x; i <= y; i++)
        if(rn(i)) t++;
    cout << t << endl;
    return 0;
}

4.【运行结果】

 

posted @ 2019-11-16 06:17  new-code  阅读(1009)  评论(0)    收藏  举报