解题思路:
1.求公元一年到y年m月d日一共多少天(套路)(平闰年不考虑过83)
2.1结果模7返回值判断星期几
注意事项:
2中返回值0代表星期天其他顺延
参考代码:
#include <iostream>
using namespace std;
bool run(int y){
return (y%100 &&y%4==0)||(y%400==0);
}//平闰年判断
int mouth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};//正常一年天数
int howmany(int y,int m,int d){
int ret = 0;
for(int i=1;i<y;i++){
ret += run(i)?366:365;
}//年天数
for(int i=1;i<m;i++){
if(run(y)&&i==2)ret++;//(小坑)
ret += mouth[i];
}//月天数
ret += d;
return ret;//总天数
}
int main(){
int y,m,d;
cin>>y;
int ans = 0;
for(m=1;m<=12;m++){
int tmp = mouth[m];
if(m==2&&run(y))tmp++;//(小坑)
for(d=1;d<=tmp;d++){
if(d==13&&howmany(y,m,d)%7==5)ans++;//题意
}
}
cout<<ans<<endl;
return 0;
}
0.0分
1 人评分
【绝对值排序】 (C++代码)浏览:672 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |
【计算两点间的距离】 (C语言代码)浏览:1494 |
1009题解浏览:752 |
A+B for Input-Output Practice (IV) (C语言代码)浏览:508 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:538 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:521 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:527 |
Manchester-The 3n + 1 problem浏览:1393 |
分糖果 (C++代码)浏览:2682 |