数星期日
下列信息是已知的,当然你也不妨自己再验证一下。
- 1900年1月1日是星期一。
- 三十天在九月中,
四六十一也相同。
剩下都是三十一,
除去二月不统一。
二十八天平常年,
多加一天在闰年。 - 闰年指的是能够被4整除却不能被100整除的年份,或者能够被400整除的年份。
在二十世纪(1901年1月1日到2000年12月31日)中,有多少个月的1号是星期天?
代码演示
#include <iostream>
using namespace std;
int val(int y, int m, int d) {
if (m == 1 || m== 2) {
y--;
m += 12;
}
int w;
w = (d + 2 * m + 3 * (m + 1) / 5
+ y + y / 4 - y / 100
+ y / 400) % 7;
return w;
}
int main() {
int sum = 0;
for (int y = 1901; y < 2001; y++) {
for (int m = 1; m <= 12; m++) {
if (val(y, m, 1) == 6) {
sum ++;
}
}
}
cout << sum << endl;
return 0;
}