欧拉计划 题目19

来源:互联网 发布:淘宝买东西怎么写评语 编辑:程序博客网 时间:2024/06/05 16:49

 

以下是一些已知信息,但是或许你需要自己做一些其他的调查。

  • 1900年1月1日是星期一。

  • 30天的月份有:9月,4月,6月,11月。

  • 此外的月份都是31天,当然2月除外。

  • 2月在闰年有29天,其他时候有28天。

  • 年份可以被4整除的时候是闰年,但是不能被400整除的世纪年(100的整数倍年)除外。

20世纪(1901年1月1日到2000年12月31日)一共有多少个星期日落在了当月的第一天?

 

 

 

 写代码的时候,总是不能一次性通过,还是花了好长的时间找错误。 唉。。。。。

 

View Code
 1 #include<iostream>     2 using namespace std;     3          4 int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};     5 int count = 0;     6 int main()     7 {     8     int i , j;     9     int star = (1+365 % 7)%7;    10     if(star==0)count++;    11     for(i = 1901; i <= 2000; i++)    12     {    13         for(j = 1; j <= 12; j++)    14         {    15             if(((i%4==0&&i%100!=0)||i%400==0) && j ==2)    16             {    17                 star  += (month[j-1]+1)%7;    18                 star %= 7;    19             }    20             else21             {    22                 star  += month[j-1]%7;    23                 star %= 7;    24             }    25             if(star == 0)    26                     count++;    27         }    28     }    29     cout<<count<<endl;    30 }