咨询电话:010-82823766

输出2000—2500年中的所有闰年
  • 2008-11-25 10:19:44
  • 发表时间:
  • 浏览次数:
  • 网络
  • 文章来源:
  • 佚名
  • 作者:

算法分析:

  闰年的条件是:①能被4整除,但不能被100整除的年份都是闰年,如1996年,2004年是闰年;②能被100整除,又能被400整除的年份是闰年。如1600年、2000年是闰年。不符合这两个条件的年份不是闰年。

  算法可表示如下:

  S1:2000→y

  S2:若y不能被4整除,则输出y“不是闰年”。然后转到S6

  S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6

  S4:若y能被100整除,又能被400整除,输出y“是闰年”;否则输出“不是闰年”。然后转到S6

  S5:输出y“不是闰年”

  S6:y+1→y

  S7:当y≤2500时,转S2继续执行,如y>2500,算法停止。

  在这个算法中,采取了多次判断。先判断y能否被4整除,如不能,则y必然不是闰年。如y能被4整除,并不能马上决定它是否闰年,还要看它能否被100整除。如不能被100整除,则肯定是闰年(例如1996年)。如能被100整除,还不能判断它是否闰年,还要被400整除,如果能被400整除,则它是闰年,否则不是闰年。

此算法对应的源程序如下:

main(){
    int y=2000;
    while(y<=2500){
     if(y%4!=0) printf("%d 不是闰年\n",y);
     else if(y%100!=0) printf("%d 是闰年\n",y);
     else if(y%100==0 && y%400==00) printf("%d 是闰年\n",y);
     else printf("%d 不是闰年\n",y);
     y++;
    }
}

  在这个算法中,每做一步,都分别分离出一些范围(已能判定为闰年或非闰

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom