最开始在刚接触C++的时候,老师布置了一个任务给我们:
闰年是很特殊的一个年份,现需要你判断两个年份之间是否包含闰年。例如2000 年到 2010年 间, 包含3个闰年:2000, 2004, 2008,故存在闰年,输出“Yes”。
【输入格式】
共1行:两个空格隔开的正整数 a, b。
【输出格式】
若a, b 间有闰年,则输出“Yes”,否则输出"No"。
我寻思着不就判断个闰年嘛......想都没想,夸夸一个循环,又填几个if分支就写好了,然后给了老师,老师才跟我说要用十次,嘿我一听,用10次,几个ctrl+c,ctrl+v就完事了,但鬼知道,我这玩意,他报错了!!!(在那个时候,我把复制粘贴当宝用)
后来,看了半天,发现是我复制错了......我又一个个调试,然后最后找不出来,又重新打了10遍代码......
#include <iostream>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
/*定义flag计数器*/
bool flag=0;
for (int i=a;i<=b;i++)
{
if (i%4==0 && i%100!=0 || i%400==0)
{
flag=1;
}
}
if (flag)
{
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
return 0;
}
现在回想起来,那个时候也算是我写过最蠢的一个代码了,等现在来看,只是一个函数搞定的事情罢了,那个时候却写了10次这玩意儿......
#include <iostream>
using namespace std;
// 在此定义函数isLeap()
bool isLeap(int a)
{
return (a%4==0 and a%100!=0) || (a%400==0);
}
int main()
{
for (int i = 1900; i <= 2000; i++)
{
if (isLeap(i))
{
cout << i << endl;
}
}
return 0;
}
(这个是找1900至2000年闰年的代码,逻辑上相差不大,姑且看吧)