解题思路:
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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复