比如从2000年1月1日遍历到2020年10月1日,并且给了周几。

小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了
激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年
10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

遍历时间模板

  1. int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  2. int judge_run(int y) {
  3. if(y % 400 == 0) return 1;
  4. if(y % 4== 0 && y % 100 != 0) return 1;
  5. return 0;
  6. }
  7. int main()
  8. {
  9. int y = 2000, m = 1, day = 1, zhou = 6;
  10. while(1) {
  11. if(y == 2020 && m == 10 && day == 2) break;
  12. // 今天做了什么操作
  13. ....
  14. day++;
  15. zhou++;
  16. if(zhou > 7) zhou = 1;
  17. int maxdays = month[m];
  18. if(judge_run(y) && m == 2) maxdays++;
  19. if(day > maxdays) {
  20. day = 1;
  21. m++;
  22. if(m > 12) {
  23. y++;
  24. m = 1;
  25. }
  26. }
  27. }
  28. return 0;
  29. }