手机网站建设价格低外销平台有哪些
应用
商人经营一家店铺,共有N种商品,由于仓库限制,每件商品的最大持有数量是item[i],每种商品的价格是price[i][day]。
通过对商品的买进、卖出获取利润,请给出商人在days天内能获取的最大的利润。
实现
N = int(input("请输入商品种类:"))
days = int(input("请输入售卖天数:"))str = input("请输入每种商品的最大持有数量:").split()
item = [int(i) for i in str]prices = []
for i in range(0, N):s = input(f"请输入第{i}种商品的每日价格:").split()r = [int(i) for i in s]prices.append(r)
# print(prices)revenue = [[] for n in prices]
# 每种商货的单品,在第i天买进,分别在第i天、第i+1天……第n-1天卖出,此类操作的营收
for n in range(0, len(prices)):for i in range(0, days):for j in range(i, days):income = prices[n][j] - prices[n][i]# 不做无效或亏本生意if income > 0:# 种类,买入天、卖出天、收入revenue[n].append([i, j, income])
# print(revenue) # 三维# 按照收入从大到小排序
for n in range(0, len(revenue)):for i in range(0, len(revenue[n])):for j in range(0, len(revenue[n])):# 不能自己与自己比较if i != j:if revenue[n][i][-1] > revenue[n][j][-1]:revenue[n][j], revenue[n][i] = revenue[n][i], revenue[n][j]
# print(revenue)sum = 0
# 计算利润
for n in range(0, len(revenue)):# 按照种类求和s_kind = 0# 确保非空if revenue[n]:for i in range(0, len(revenue[n])):if i == 0:s_kind = s_kind + revenue[n][i][-1] * item[n]sold_day = revenue[n][i][1]else:# 每种商品的持有量,按照仓储上限计算,所以:当前方案的买入日 >= 上次已实施方案的卖出日if revenue[n][i][0] >= sold_day:s_kind = s_kind + revenue[n][i][-1] * item[n]sold_day = revenue[n][i][1]# 全种类求和sum = sum + s_kind
print(sum)
请输入商品种类:3
请输入售卖天数:3
请输入每种商品的最大持有数量:4 5 6
请输入第0种商品的每日价格:1 2 3
请输入第1种商品的每日价格:4 3 2
请输入第2种商品的每日价格:1 5 3
32
