1:代码如下:
// 3.25.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <iostream> using namespace std; int main(int argc, _TCHAR* argv[]) { //若直接使用for循环遍历1773-2012年,则需要执行240次判断。 int year; //1773开始的第一个闰年 int yearStart = 1773;//代表从何年开始 int yearTo = 2012;//代表从何年结束 //其实可以将以下for循环条件设定为i<4,不过有些年份在世纪末,设定为i<8则是考虑到了这一点。 for(int i = 0;i<8;i++ ) { if( (yearStart+i)%4==0 && (yearStart+i)%100!=0 || (yearStart+i)%400==0) { year = yearStart+i; //此时year为1773开始的第一个闰年 break; } } int count = 1; //闰年个数 for(int yearIter =year;yearIter<yearTo;count++) { if(yearIter%100 == 0&&yearIter%400 != 0) { yearIter+=4;//每隔4年判断一次 count--; continue; } cout<<yearIter<<" "; if(count%10 == 0) { cout<<endl; //每10个年份换行 } yearIter+=4; } cout<<endl; //整个程序执行了共62次循环 return 0; }
运行结果: