Heng_Xin 题解分享 · 2024/5/25
完全日期(结果填空) - 题解
```cpp #include <cstdio> #include <string> #include <unordered_set> using namespace std; int main() { unordered_set<int> hash; for (int i = 1; i < 21; ++i) hash.insert(i * i); int res = 0; for (int y = 2001; y <= 2021; ++y) { for (int m = 1; m <= 12; ++m) { for (int d = 1; d <= 31; ++d) { // 这里是模版 if (!(m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)) { if (m == 2) { // 闰年: 可以被400整除 或者 被4而不能被100整除的年 if (m % 400 == 0 || (y % 4 == 0 && y % 100 != 0)) { // 如果是润年 if (d > 29) break; } else { if (d > 28) break; } } else { if (d > 30) break; } } int sum = y % 10 + y /10 % 10 + y /100 % 10 + y / 1000 % 10 + m % 10 + m / 10 % 10 + d % 10 + d / 10 % 10; if (hash.count(sum)) { ++res; printf("%d-%d-%d -> %d\n", y, m, d, sum); } } } } printf("%d", res); return 0; } ```
查看全文
1 0 0 4