一开始用循环做的题目,python的效率可能是真的低,怎么都跑不过,在线的IDE老是显示超时, 不过我在本地用循环解题是可以跑过的,后面就采用算术解题,也算是暴力解题的一种吧。
题目描述
有一只小鱼,它上午游泳150公里,下午游泳100公里,晚上和周末都休息(实行双休日),假设从周x(1<=x<=7)开始算起,请问这样过了n天以后,小鱼一共累计游泳了多少公里呢?
输入描述:
输入两个整数x,n(表示从周x算起,经过n天,n在long int范围内)。
输出描述:
输出一个整数,表示小鱼累计游泳了多少公里。
示例 :
输入3 10
输出2000
源代码
class Solution:
def __init__(self) -> None:
pass
def solution(self, x, n):
result = 0
week_day = n-(7-x+1) # 消去头一个星期剩余的天数
week_count = week_day//7 # 对剩余天数取整除数
week_remainder = week_day%7 # 对剩余天数取余
if week_remainder == 6:
week_remainder = 5 # 余数为6 当做5天来处理
if week_count != 0:
result = 250 * (5 * week_count + week_remainder) # 一周只游5天加上余数的天数
else:
result = 250 * week_remainder # 天数没有一个星期的直接算余数
if n - week_day > 2:
result += (n-week_day-2)*250 # 加上头一个星期游的天数
return result
if __name__ == "__main__":
arr_temp = [int(item) for item in input().strip().split()]
x = int(arr_temp[0])
n = int(arr_temp[1])
sol = Solution()
result = sol.solution(x, n)
print(result)