我们发现题目中有一句话:不包含起始年份和终止年份
于是我写了这样的一份代码 很显然,这是错的
#include <cstdio>
int l,r,sum;
bool judge(int y){
if(!(y%4)&&y%100||!(y%400))return true;
return false;
}
int main(){
scanf("%d%d",&l,&r),l++,r--;
while(l++<r)
if(judge(l))sum+=l;
printf("%d",sum);
return 0;
}
我们可以在while循环的循环体中将if语句换成printf("%d ",l) 观察遍历的年份,发现第l+1年没有遍历到,也就是只遍历了[l+2,r−1]年,但是AC了,正解应该是将scanf后面的l++删掉
建议增加的hack数据
input:
2011 2020
output:
4028
@览遍千秋
@maxmallite