题目:
给定一个公历年份,判断其是不是闰年?
思路:四年一闰,百年不闰,四百再闰。简单的讲,就是每过四年为一个闰年,但是每过一百年不是闰年,每过四百年又是闰年。相信大家的编程思路就出来了,下面是C/C++代码和Java代码.
C/C++代码示例:
#include <iostream>
using namespace std;
int main()
{
int Year;
while(cin>>Year)
{
if(Year%400==0)
cout<<Year<<"是闰年"<<endl;
else if(Year%4==0 && Year%100!=0)
cout<<Year<<"是闰年"<<endl;
else
cout<<Year<<"是平年"<<endl;
}
return 0;
}
Java代码示例:
import java.util.Scanner;
public class Runnian {
public static void main(String[] args) {
// TODO Auto-generated method stub
int Year;
while(true)
{
Scanner s = new Scanner(System.in);
Year=s.nextInt();
if(Year%400==0)
System.out.println(Year+"是闰年");
else if(Year%4==0 && Year%100!=0)
System.out.println(Year+"是闰年");
else
System.out.println(Year+"是平年");
}
}
}
下面给出详细解答思路,也可以当做拓展知识,因为前面已将足够解题了。
其实,并没有什么平年闰年,因为这些知识,都来源于老祖先人们的规定罢了,正所谓无规矩不方圆嘛,如果我是制作规则那个人,说不定,就没有男女之分了,公用一种厕所。哈哈哈!
咳咳,下面谈正经的。基本知识,地球自转一圈为一天,公转一圈为一年。但是呢,不是所有的事情都是这么恰到好处的,有误差,那是肯定的。有一天,祖宗们闲的蛋疼,拿个秒表在那计算地球公转的具体时间为365日5时48分46秒,呵呵,看来每年还多出近6个小时,那怎么办呢?不可能忽略不计吧,一年误差还好,要是一千年呢?误差对于人内而言就大了,毕竟人类是渺小的哇。所以,祖宗们才规定了平年和闰年来decrease这种误差。
怎么解决的呢?下面就是小学算术啦。
首先,地球公转一圈为365日5时48分46秒,为了方便,每圈多出来的0.2422日乘以4,就是0.9688日,是不是接近一天啦,然后就在第四年中加一天,也就是每四年一闰年。别以为就完啦,毕竟0.9688日也不是一日哇,四年过后,不就多了0.0312日嘛,时间毕竟不是金钱哇,存银行是不会产生利息的!所以,四百年过后,多的这3.12日怎么算呢?祖宗回答说,能怎么办,减呗。于是,就在每四百年中少设置3个闰年,这样,每四年多0.0312日,每一百年就多0.78日,就算他一日嘛,所以就在每一百年减少一个闰年,也就是我们所说的百年不闰。还没完哈,因为这一百年多的0.78日,毕竟也不是一日,多减了0.22日,四百年过后,就是0.88日了,所以又多了将近一日了,那么就每四百年加一个闰年。那么就很好懂,四年一闰,百年不闰,四百再闰的说法了。
读者心中肯定有疑问,毕竟0.88日也不是一日哇,多加的这0.12日怎么办?
我给出的的回答是,你先能活到一百年再谈四百年。估计,能活到一百岁的都活够了吧,表示理解和尊重David Goodall教授。