题目描述
有些西方人比较迷信,如果某个月的13号正好是星期五,他们就会觉得不太吉利,用古人的说法,就是“诸事不宜”。请你编写一个程序,统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形,以帮助你的迷信朋友解决难题。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入
输入只有一行,即某个特定的年份(大于或等于1998年)。
输出
输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
样例输入
1998
样例输出
3
// // main.cpp // c++prime // // Created by SJCHEN on 2019/1/19. // Copyright © 2019 SJCHEN. All rights reserved. // #include<algorithm> #include<cstring> #include <iostream> using namespace std; //1 -2(-1) 1 0 1 0 1 1 0 1 0 1 //1988 1 1 星期4 int a[13] = {1,-2,1,0,1,0,1,1,0,1,0,1};//月份天数30+a[i] int main() { int n; int week = 4, count = 0; cin >> n; int i; for (i = 1998; i <= n; i++) { if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) { a[1] = -1; } else a[1] = -2; for (int k = 0; k < 12; k++) {//月 for (int j = 1; j <= 30+a[k]; j++) {//日 if (i == n && (j == 13 && week == 5)) count++; week++; if (week == 8) week = 1; } } } cout << count << endl; return 0; }