首页 > 其他 > 详细

P5737 【深基7.例3】闰年展示 题解

时间:2021-05-23 17:09:33      阅读:29      评论:0      收藏:0      [点我收藏+]

题目描述

输入 x,y(1582\le x < y \le 3000)x,y(1582x<y3000) ,输出 [x,y][x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。

输入输出样例

输入 #1
1989 2001
输出 #1
3
1992 1996 2000

题目分析

1.普通闰年:能被4整除但不能被100整除的年份为普通闰年。

2.世纪闰年:能被400整除的为世纪闰年。

3.因为要输出闰年的个数和闰年的具体年份,所以使用数组来解决这个问题最合适。

程序代码:(每行代码加注释是个好习惯,坚持)

#include<iostream>
using namespace std;
int s[1000];
int main(){
int a,b;
cin>>a>>b;//输入开始年份和结束年份
int n=0;
for(int i=a;i<=b;i++){
if((i%4==0&&i%100!=0)||i%400==0){//判断这年是不是普通闰年或者世纪闰年。
s[n++]=i;//是闰年或者世纪闰年记答案,次数加1
}
}
cout<<n<<endl;//先输出次数
for(int i=0;i<n;i++){
cout<<s[i]<<" ";//输出闰年的年份答案
}
cout<<endl;//换行
return 0;//结束
}

运行结果

技术分享图片

 

题目总结:

1.用万能的数组下表进行计数,数组输出相应的年份。这个是很好的解决办法。

2.数组和for循环的熟练利用可以解决很多循环问题。

3.闰年的判断不要方法代码注意世纪闰年。((i%4==0&&i%100!=0)||i%400==0)

P5737 【深基7.例3】闰年展示 题解

原文:https://www.cnblogs.com/limingze/p/14801257.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!