原题链接:蓝桥杯算法训练VIP-黑色星期五
#include "iostream" #include "algorithm" #include "cstring" #include "vector" using namespace std; int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int main() { int year; cin >> year; if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) a[2] = 29; else a[2] = 28; int k = year - 1998; int sum; int week = 4; for (int i = 1; i <= k; i++) { int y = 1998 + i; if ((y-1) % 4 == 0 && (y-1) % 100 != 0 || (y-1) % 400 == 0) /*减一的目的是当年的二月才为29天,所以当年的一月不受影响,影响的是下一年的*/ { sum = 366; } else { sum = 365; } week = week + sum % 7; if (week > 7) { week = week - 7; } } int ans = 0; for (int i = 1; i < 13; i++) { int w = week + (12 % 7); /*用12模是因为week已经包括第一天了*/ if (w > 7) w = w - 7; if (w == 5) ans++; week = week + a[i] % 7; if (week > 7) week = week - 7; } cout << ans << endl; return 0; }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复