在公歷(格里歷)紀年中,有閏日的年份叫閏年,一般年份365天,閏年為366天。閏年的計算方法:公元紀年的年數(shù)可以被四整除但不被100整除,即為閏年或被100整除且能被400整除為閏年。如2000年是閏年,而1900年不是。關(guān)于閏年,古話講“四年一閏,百年不閏,四百年再閏”就是基于這個原理而來的。
那么,怎樣從算法的角度去判斷某年是否為閏年呢? 由上,我們知道,任意輸入一年份,是閏年必須滿足下列條件之一: (1)能被4整除,但不能被100整除;(用算法描述為year%4=0 && year%100!=0) (2)能被4整除,又能被400整除。(用算法描述為year%4 =0 && year%400=0) 所以,我們判斷某一年是否為閏年的算法步驟應(yīng)該是: S1 輸入一個年份:x; S2 對x進行判斷,若x不是4的倍數(shù),則x年不是閏年,即可輸出:x不是閏年。 S3 若x是4的倍數(shù),還要對x繼續(xù)判斷,若x不是100的倍數(shù),則x是閏年。輸出:x是閏年;若x是100的倍數(shù),則執(zhí)行S4。 S4 若x是400的倍數(shù),則x是閏年,輸出:x是閏年;否則x不是閏年,輸出:x不是閏年。 S5 結(jié)束。 根據(jù)這個算法思路,相應(yīng)的程序框圖也就畫出來: 在程序語句中三次出現(xiàn)條件語句,分別是: (1) 判斷4整除x? (2) 100整除x? (3) 400整除x? 條件語句的結(jié)構(gòu)我們已經(jīng)學(xué)過,根據(jù)算法思路,我們已經(jīng)將相關(guān)的程序框圖畫出來了,那么,接下來,我們就需要用算法語句來描述有關(guān)閏年的判斷思路。上述程序框圖的算法語句如下: INPUT x if x mod 4=0 then if x mod 100!=0 then print x;"是閏年" else if x mod 400=0 then print x;"是閏年" else print x;"不是閏年" end if else print x;"不是閏年" end if 注明:同一算法,可以用不同的語句來描述。大家自己嘗試! |