题解 | #判断闰年#

判断闰年

https://www.nowcoder.com/practice/a7bcbe3cb86f435d9617dfdd20a16714

#include<stdio.h>
int main()
{
    int n;//给年份定义整型为n
    scanf("%d",&n);//输入年份
    if(n%4==0&&n%100!=0||n%400==0)//判断闰年条件,能被4整除但不能被100整除,或者能被400整除
                                  //2100年就不是闰年,因为它能被100整除
    {
        printf("yes");
    }
    else 
    {
        printf("no");
    }
    return 0;
}

科普:

什么叫一年?

地球绕太阳一圈的时间

实际一年时间约为365.2422天,但我们统一规定一年365天,少了约0.2422天,那每年差约0.2422天,那四年就会差0.9688天,如果不管,以后的月份所对应的季节气候会和现在很不一样,比如现在的2,3月应该是春天,但因为忽略误差很多年,将来的2,3月实际上已是6,7月夏季,就要改共识,很麻烦

因此,有了闰年,每四年把那0.9688天近似为1天,加进来于是就有每四年一个闰年

但加了一天,实际多加了1-0.9688=0.0312天,日积月累,四百年的时间里,每四年出一个闰年,多加0.0312天,四百年里有100个闰年,多加了3.12天

那得想个办法,把这多加的给减去,刚好,四百年里,0年,100年,200年,300年中,100年,200年,300年本应该像其它闰年那样加1天,这回不加了,那不就把多的3.12天分三次给抵消了

于是,闰年的判断条件就是能被4整除但不被100整除或能被400整除

全部评论

相关推荐

安静的垂耳兔在泡澡:ks已经第八次投递了,它起码挂了还让你再投,不错了
点赞 评论 收藏
分享
字节 飞书绩效团队 (n+2) * 15 + 1k * 12 + 1w
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务