LQ0039 跑步锻炼日期计算+模拟
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0039 跑步锻炼日期计算+模拟相关的知识,希望对你有一定的参考价值。
题目来源:蓝桥杯2020初赛 C++ B组E题
题目描述
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑2 千米。如果同时是周一或月初,小蓝也是跑2 千米。
小蓝跑步已经坚持了很长时间,从2000 年1 月1 日周六(含)到2020 年10 月1 日周四(含)。
请问这段时间小蓝总共跑步多少千米?
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
问题分析
填空题。
日期计算+模拟计算,看程序代码不解释。程序计算结果为8879。
AC的C语言程序如下:
/* LQ0039 跑步锻炼 */
#include <stdio.h>
int mdays[] = 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;
int leapyear(int year)
return ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) ? 1 : 0;
int main()
int week = 6, ans = 0;
for (int year = 2000; year <= 2020; year++)
mdays[2] = 28 + leapyear(year);
for (int month = 1; month <= 12; month++)
if (year == 2020 && month == 10) break; /* 算到2020年9月30日为止 */
for (int day = 1; day <= mdays[month]; day++)
ans++;
if (day == 1 || week == 1) ans++;
if (++week > 7) week = 1;
printf("%d\\n", ans + 2); /* 加上2020年10月1日跑步千米数 */
return 0;
以上是关于LQ0039 跑步锻炼日期计算+模拟的主要内容,如果未能解决你的问题,请参考以下文章