首页 > 其他 > 详细

黑色星期五

时间:2018-01-30 23:54:50      阅读:246      评论:0      收藏:0      [点我收藏+]

首先了解一个数学公式:

基姆拉尔森计算公式(已知2018-1-30求出星期二)

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7      在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意公式中有个与其他公式不同的地方:
把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

C++实现这个公式:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int fun(int y,int m,int d){
 5     if(m==1||m==2){
 6         m+=12;
 7         y--;
 8     }
 9     return (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;
10 } 
11 
12 int main(void){
13     int year,month,day;
14     cin>>year>>month>>day;
15     cout<<fun(year,month,day)<<endl;
16     return 0;
17 }

套用这个公式就可以轻易完成黑色星期五了

技术分享图片

代码如下:

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int fun(int y,int m,int d){
 5     if(m==1||m==2){
 6         m+=12;
 7         y--;
 8     }
 9     return (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7+1;
10 } 
11 
12 int main(void){
13     int year;
14     int ans=0; 
15     cin>>year;
16     for(int i=1;i<=12;i++){
17         if(fun(year,i,13)==5) ans++;
18     }
19     cout<<ans<<endl;
20     return 0;
21 } 

 

黑色星期五

原文:https://www.cnblogs.com/cxq1126/p/8387570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!