原题链接:蓝桥杯算法训练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、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复