1.编程序实现:输入一个年份y,求出从公元1年1月1日到y年1月1日,总共有多少天,并求出y年的1月1日是星期几。 下面是应该考虑的提示
疑问1:闰年的规律是不是四年一闰?
答:四年一闰是儒略历(儒略也就是凯撒大帝)的置闰规则。我们现在使用的是格里高利历,置闰规则是每400年97闰。
疑问2:公元1年1月1日是星期几呢?
答:星期一。
疑问3:据说从儒略历改为格里高利历时,将1582年10月4日的下一天定为格里高利历的10月15日,中间销去了10天,这会不会影响星期几的计算?
答:这个调整是对儒略历误差的纠正,并不会影响总天数和星期几的计算。
疑问4:这里计算总天数,好像要用到循环程序吧?
答:其实根据闰年的置闰规则,不使用循环也可以计算出来总天数。当然,你想使用循环编写该程序也是可以的。
[解决办法]
#include <iostream>using namepace std;bool is_leap_year(int i){ return i%4==0&&i%100!=0||i%400==0;}int differ(int year){ int day_in_year=0; int days[12]={31,0,31,30,31,30,31,31,30,31,30,31}; for(int i=1;i<year;i++) { day_in_year=day_in_year+365+is_leap_year(i); } return day_in_year;}int main(){ cout<<"Plese input the year"<<endl; int year; cin>>year; cout<<"距离公元1年1月1日"<<differ(year)<<"天"<<endl; cout<<year<<"年1月1日是星期"<<differ(year)%7+1<<endl; return 0;}
我的异常网推荐解决方案:程序员的一天,http://www.myexception.cn/other/1391144.html