数据过水
查看原帖
数据过水
580351
xieyubo楼主2024/8/10 22:55

我们发现题目中有一句话:不包含起始年份和终止年份

于是我写了这样的一份代码 很显然,这是错的

#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+1l+1年没有遍历到,也就是只遍历了[l+2,r−1][l+2,r-1]年,但是AC了,正解应该是将scanf后面的l++删掉

建议增加的hack数据

input:

2011 2020

output:

4028

@览遍千秋

@maxmallite

2024/8/10 22:55
加载中...