您的位置:首页 > 教育 > 培训 > 蓝桥杯--跑步计划

蓝桥杯--跑步计划

2025/9/19 17:19:52 来源:https://blog.csdn.net/2303_79549479/article/details/139552877  浏览:    关键词:蓝桥杯--跑步计划

问题描述

小蓝计划在某天的日期中出现 11 时跑 55 千米,否则只跑 11 千米。注意日期中出现 11 不仅指年月日也指星期。

请问按照小蓝的计划,20232023 年小蓝总共会跑步锻炼多少千米?例如,55 月 11 日、11 月 1313 日、1111 月 55 日、44 月 33 日 (星期一) 小蓝会跑 55 千米,而 55 月 2323 日小蓝会跑 11 千米 (示例日期均为 2023 年)


思路:    知道2023年是平年,四月三日是星期一 , 求出到四月三日一共的天数,再求七天的余数. 根据这个余数可以判断某天是否为星期一

所以,大致思路如下

#include <iostream>
using namespace std;
int DAY(int month, int day)//由月和日,直接求天数
{int add = 0;int M[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };for (int i = 0; i < month; i++){add += M[i ];}add += day;return add;
}
int main()
{int b = DAY(4, 3) % 7;//已知(4,3)为星期一,求余数int M[] = { 31,28,31,30,31,30,31,31,30,31,30,31 };int day;int c = 0;//重复的int d = 0;//all 1int e = 0;//all 2 for ( int x = 1; x <=12; x++){for (int y = 1; y <=M[x-1]; y++){if (x == 1 || x/10==1 || y / 10 == 1 || y % 10 == 1){d++;//月,日总数day = DAY(x, y);if (day % 7 == b)                        {c++;//重复的}}}}for (int i = 1; i <= 365; i++)//求星期一总数{if (i  % 7 == b){e++;}}int f = d - c + e;//求总和f = f * 5 + 365 - f;cout << f<< endl;return 0;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com