欧拉计划 题目19

 

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

  • 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             else
21             {    
22                 star  += month[j-1]%7;    
23                 star %= 7;    
24             }    
25             if(star == 0)    
26                     count++;    
27         }    
28     }    
29     cout<<count<<endl;    
30 }

 

转载于:https://www.cnblogs.com/nigel-jw/archive/2013/05/06/3063670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值