还没开始系统学习算法,先做几题看看自己几斤几两
每日一题
# 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))
感谢浏览,如有错误,感谢指出。