蓝桥真题,跑步问题c语言解决方案

小蓝每天都锻炼身体。

正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。

小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?

c语言解决:

#include<stdio.h>
int main()
{
	int months[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
	int year, month, day;
	int km=0;//千米
	int ri = 6;//从星期六开始

	for (year = 2000; year <= 2020; year++)//在2000到2020年内循环
	{
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//针对闰年多1天的情况
		{
			months[2] = 29;
		}
		else
		{
			months[2] = 28;
		}

		for (month = 1; month <= 12; month++)
		{
			for (day = 1; day <= months[month]; day++)
			{
				km++;
				if (ri == 8) {//星期一到星期天的循环
					ri = 1;
				}
				if (ri == 1 || day == 1)//月初和星期一多跑1km
				{
					km++;
				}
				ri++;
				if (year == 2020 && month == 10 && day == 1) {
					printf("%d", km);
					return 0;//到了2020年10月1日则跳出循环,退出程序
				}
			}
		}

	}
	return 0;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值