从零备战蓝桥杯

还没开始系统学习算法,先做几题看看自己几斤几两

每日一题

# Lee 的老家住在工业区,日耗电量非常大。
# 今年 7 月,传来了不幸的消息,政府要在 7、8 月对该区进行拉闸限电。政府决定从 7月 1 日起停电,然后隔一天到 7 月 3 日再停电,再隔两天到 7 月 6 日停电,依次下去,每次都比上一次长一天。
# Lee 想知道自己到家后到底要经历多少天倒霉的停电。请编写程序帮他算一算。
# 注意:从键盘输入放假日期、开学日期,日期限定在 7、8 月份,且开学日期大于放假日期,然后在屏幕上输出停电天数。

这题主要是把停电的时间计算出来,停电的时间不是等差数列,而是1,3,6,9,10,15......从0开始,后一项等于前一项加上以1为首以1为公差的等差数列的对应的项。具体代码如下:

start = 0
stop = 1
date = [i for i in range(1,32)]
for i in range(1, 32):
    start = start + stop
    stop += 1
    if start in  date:
        print(start)
# 运行结果如下 
# 1 3 6 10 15 21 28
知道停电的时间后,就很好做了。后续只要把开始和回校的这段时间循环出来,再判断停电的时间有哪几天就ok了,

有一个比较有意思的思路就是,用键值对把停电的时间标记,0为有电,1为停电,具体代码如下
date_time7 = [f'7-{i}' for i in range(1,32)]
date_time8 = [f'8-{i}' for i in range(1,32)]
data_time = date_time7+date_time8
print(data_time)
date_dict= {}
start = 0
stop = 1
for index,date in enumerate(data_time):
    date_dict[date] = 0
    if start==index:
        date_dict[date]=1
        stop+=1
        start = start+stop


start_time = input('开始的时间:')
stop_time = input('停止的时间:')

start_index = data_time.index(start_time)
stop_index = data_time.index(stop_time)

no_power = []

for i in range(start_index,stop_index+1):
    if date_dict[data_time[i]] ==1:
        no_power.append(data_time[i])
print(no_power)
print(len(no_power))

感谢浏览,如有错误,感谢指出。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值