【条件】【提高】天数

题目描述

输入某年某月某日,判断这一天是这一年的第几天?

输入

输入某年某月某日

输出

这一天是这一年的第几天

样例输入

2000 5 21

样例输出

142

 思路:

既然要算这一天是今年的第几天,就要牵扯到闰年和平年了,下面请看Chatgpt

闰年的判断方法有两种:

1. 四年一闰,百年不闰,四百年再闰。即年份能够被4整除但不能被100整除,或者能够被400整除的年份为闰年。

2. 公历纪年法中,能被4整除但不能被100整除的年份为普通闰年。能被4整除且能被100整除,但不能被400整除的年份不是闰年。能被4整除且能被400整除的年份为世纪闰年。

在本题中,可以使用第一种方法进行判断。即判断输入的年份是否能被4整除但不能被100整除,或者能够被400整除。如果满足条件,则该年为闰年,否则为平年。

看到我划出的句子这是判断闰年的关键

那现在我们根据这个提示写出第一行代码:

year, month, day = map(int, input().split())

# 判断是否为闰年并计算当月天数
if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0):
    month_days = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
else:
    month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

我来给大家解释一下上面的代码

使用map进行多次用input创建变量,好处是可以直接将他转换成int放入列表

然后就是if, else判断,看上面的红字再来看,and表示和,or表示或者

我们再写出后面的代码

# 计算前面月份的总天数
total_days = sum(month_days[:month-1]) 

# 加上当月的天数
total_days += day

# 输出结果
print(total_days)

然后我们将输入的月份的前几个月的总天数加起来,再加我们输入的天数就OK👌了

【蓝桥杯省赛复习第一天】

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值