第一届蓝桥杯C/C++组编程题1 黑色星期五

来源:互联网 发布:安卓版全球网络电视apk 编辑:程序博客网 时间:2024/05/17 07:17

1.为什么会有闰年?

地球围绕太阳公转一天的时间不是一年,其中有几个小时的误差。而这些小时占全天的四分之一,而四年就是:四分之一+四分之一+四分之一+四分之一=1,所以四年后就会多一天。

2.


输入
1998 
输出
1998-2-13
1998-3-13
1998-11-13

可以通过公式算出每年的第几天是星期几

现在我们要求每个月的第13天是星期几,可以转化为该年的第几天是星期几(即将该年每个月的第13天转化为该年的第几天

[(year-1)+(year-1)/4-(year/100)+(year/400)+D] %7=x;year年的第D天是星期x

#include<iostream>
using namespace std;
int days1[13] = { 0, 13, 44, 72, 103, 133, 164, 194, 225, 256, 286, 317, 347 };
int days2[13] = { 0, 13, 44, 73, 104, 134, 165, 195, 226, 257, 287, 318, 348 };
int func2(int year){
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return 1;
else
return 0;
}


void func1(int year){
if (func2(year)){
for (int i = 1; i <= 12; i++){
if ((year - 1 + (year - 1) / 4 - year / 100 + (year / 400) + days2[i]) % 7 == 5) cout << year << "-" << i << "-" << 13;
}


}
else{
for (int i = 1; i <= 12; i++){
if ((year - 1 + (year - 1) / 4 - year / 100 + (year / 400) + days1[i]) % 7 == 5)cout << year << "-" << i << "-" << 13;
}


}
}
int main(){
int year;
cin >> year;
func1(year);
}


3.关于星期的知识

每个非闰年中,第一天是周几,最后一天就是周几        因为 365 / 7 = 52 余 1


原创粉丝点击