#include<stdio.h> int main() { int year,leap,count=0; for(year=1000;year<=2000;year++) {if(year%4==0) {if(year%100==0) { if(year%400==0) leap=1;/*year能被400整除的年份是閏年*/ else leap=0; } else leap=1;/*year能被4整除並且不能被100整除的年份是閏年*/ } else leap=0; if(leap)printf("%d ",year,count++);/*輸出1000-2000年所有年份及求出閏年的總個數*/ } if(count%10==0)printf("\n");/*每輸出10個數換行*/ printf("\ncount=%d",count); return 0; }
第二種:
#include<stdio.h> int main() { int year,count=0; for(year=1000;year<=2000;year++) { if(year%4==0) { if(year%100!=0)printf("%d ",year,count++); /*year能被4整除並且不能被100整除的年份是閏年*/ } if(year%400==0)printf("%d ",year,count++);/*year能被400整除的年份是閏年*/ } printf("\ncount=%d",count);/*輸出1000-2000年間是閏年的總個數*/ return 0; }
第三種:
#include<stdio.h> int main() { int yaer,count=0; for(year=1000;year<=2000;year++) { if(year%4==0&&year%100!=0||year%400==0)printf("%d ",year,count++); /*運用與運算和或運算判斷閏年*/ } printf("\ncount=%d",count);/*輸出1000-2000年間是閏年的總個數*/ return 0; }
這就是人們熟知的“四年一閏,百年不閏,四百年再閏”的閏年算法程序。但對於數值很大的年份,這年如果能整除3200,並且能整除172800則是閏年,由於求1000-2000年之間的閏年,此程序沒有考慮這點。