分享

关于闰年的算法

 lly0571 2011-01-06
关于闰年的算法


作者:丽江市分校     来源:本站原创     点击数:6226    文章录入:丽江市分校   

          在公历(格里历)纪年中,有闰日的年份叫闰年,一般年份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

 

注明:同一算法,可以用不同的语句来描述。大家自己尝试!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多