在公历(格里历)纪年中,有闰日的年份叫闰年,一般年份365天,闰年为366天。闰年的计算方法:公元纪年的年数可以被四整除但不被100整除,即为闰年或被100整除且能被400整除为闰年。如2000年是闰年,而1900年不是。关于闰年,古话讲“四年一闰,百年不闰,四百年再闰”就是基于这个原理而来的。
那么,怎样从算法的角度去判断某年是否为闰年呢? 由上,我们知道,任意输入一年份,是闰年必须满足下列条件之一: (1)能被4整除,但不能被100整除;(用算法描述为year%4=0 && year%100!=0) (2)能被4整除,又能被400整除。(用算法描述为year%4 =0 && year%400=0) 所以,我们判断某一年是否为闰年的算法步骤应该是: S1 输入一个年份:x; S2 对x进行判断,若x不是4的倍数,则x年不是闰年,即可输出:x不是闰年。 S3 若x是4的倍数,还要对x继续判断,若x不是100的倍数,则x是闰年。输出:x是闰年;若x是100的倍数,则执行S4。 S4 若x是400的倍数,则x是闰年,输出:x是闰年;否则x不是闰年,输出:x不是闰年。 S5 结束。 根据这个算法思路,相应的程序框图也就画出来: 在程序语句中三次出现条件语句,分别是: (1) 判断4整除x? (2) 100整除x? (3) 400整除x? 条件语句的结构我们已经学过,根据算法思路,我们已经将相关的程序框图画出来了,那么,接下来,我们就需要用算法语句来描述有关闰年的判断思路。上述程序框图的算法语句如下: 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 注明:同一算法,可以用不同的语句来描述。大家自己尝试! |