题目描述
输入 x,y(1582\le x < y \le 3000)x,y(1582≤x<y≤3000) ,输出 [x,y][x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。
输入格式
无
输出格式
无
输入输出样例
输入
1989 2001
输出
3
1992 1996 2000
—————————————————————————
码如下:
#include <iostream>
using namespace std;
int abc(int d)
{
if(d%400==0||d%4==0&&d%100)
return 1;
else
return 0;
}
int main()
{
int a,b,sum=0;
cin>>a>>b;
for(int i=a;i<=b;i++)
{
if(abc(i))
sum++;
}
cout<<sum<<endl;
for(int i=a;i<=b;i++)
{
if(abc(i))
cout<<i<<" ";
}
}
最开始对于闰年的定义比较迷:
(查了下)
普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1900年不是闰年);
世纪闰年:能被400整除的为世纪闰年。(如2000年是世纪闰年,1900年不是世纪闰年)
还是有一点点吃鲸,怪我没有常识了
单纯被100整除原来不是闰年
两种写法
if(d%400==0||d%4==0&&d%100)
或者
if(d%400==0||d%4==0&&d%100!=0)
都可;。
完结撒花