年份处理模板)"/>
[蓝桥杯]黑色星期五(年份处理模板)
题目描述
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入
输入只有一行,即某个特定的年份(大于或等于1998年)。
输出
输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
样例输入
1998
样例输出
3
#include<bits/stdc++.h>
using namespace std;
int M[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){int y = 1998, m = 1, d = 1, w = 4, ans = 0;int n;cin>>n; while(y!=n || m!=1 || d!=1){ //先算出这个年份1月1号星期几 if(y%400==0 || (y%4==0&&y%100!=0)){M[2] = 29;}else{M[2] = 28; //这个必须加,因为M为全局变量 }d++;w = (w + 1) % 7;//w为0为星期天if(d > M[m]){d = 1;m ++; } if(m>12){m = 1;y ++;} }while(y!=n+1 || m!=1 || d!=1){ //到明年 if(y%400==0 || (y%4==0&&y%100!=0)){M[2] = 29;}else{M[2] = 28; //这个必须加,因为M为全局变量 }d++;w = (w + 1) % 7;//w为0为星期天if(d > M[m]){d = 1;m ++; } if(m>12){m = 1;y ++;} if(w==5&&d==13){ //13号又是星期五ans++;} }cout << ans << endl;return 0;
}
更多推荐
[蓝桥杯]黑色星期五(年份处理模板)
发布评论