4 条题解
-
1
C++
折磨了我好久好久,已经是历史遗留产物了......
代码已经过处理,使冗长的代码变得清晰明了
#include <bits/stdc++.h> using namespace std; bool LeapYear(int y) { //闰年判断 if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) { return true; } else { return false; } } int Days(int y, int m) { //计算某年某月有几天 if(m == 4 || m == 6 || m == 9 || m == 11) { return 30; } if(m == 2) { if(LeapYear(y)) return 29; else return 28; } else return 31; } void Print(int w, int d) { //输出 cout << " Sun Mon Tue Wed Thu Fri Sat" << endl; if(w != 6) { for(int i = 0; i <= w; i++) cout << " "; } int k; if(w == 6) k = -1; else k = w; for(int i = 1; i <= d; i++) { k += 1; if(k == 7) { //每一个星期一行 cout << endl; k = 0; }; printf("%4d", i); } } int main(){ int y, m, d; cin >> y >> m; int w; d = Days(y, m); if(m == 1 || m == 2) { // 基姆拉尔森计算公式的坑点 y -= 1; m += 12; } w = (1+2\*m+3\*(m+1)/5+y+y/4-y/100+y/400) % 7; //计算1日是星期几 Print(w, d); return 0; }
信息
- ID
- 108
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- 递交数
- 115
- 已通过
- 37
- 上传者