題面地址:P5711
這道題目是分支結構題單練習中的一題,我們先來看看閏年的判定規律:
普通闰年:公历年份是4的倍数的,且不是100的倍数,为普通闰年。(如2004年就是闰年);
世纪闰年:公历年份是整百数的,必须是400的倍数才是世纪闰年(如1900年不是世纪闰年,2000年是世纪闰年);
(引用自[百度百科](https://baike.baidu.com/item/%E9%97%B0%E5%B9%B4/27098))
所以就很明確了,我們首先需要判斷這個年份是不是世紀年份,再根據是否是世紀年份,採用不同的規則來輸出結果。
先看看世紀年份的判斷吧:
int year;
scanf("%d", &year);
int whole_hundred = (year % 100 == 0);
這樣就可判斷出是否是世紀年份了,根據取餘運算得到的餘數是否爲0就可以判斷是不是100的倍數。具體判斷只需要再寫個if分支再使用同樣方法判定就好了。
具體代碼如下:(C++)
#include <stdio.h>
int main() {
int year = 0;
scanf("%d", &year);
int whole_hundred = (year % 100 == 0);
int leap = 0;
if(whole_hundred) leap = (year % 400 == 0);
if(!whole_hundred) leap = (year % 4 == 0);
printf("%d", leap);
return 0;
}