赞
踩
题目:
考察内容:
for + if + max
代码:
""" 题目分析: 投资额*回报率=投资回报 要在可接受范围内选择最优的投资方式获得最大回报 最多投资2个理财产品 输入: 产品数int; 总投资额int; 总风险int 产品投资回报率 list(int) 产品风险值序列 list(int) 最大投资额度序列 list(int) 输出: 投资额序列 eg: 5 100 10 10 20 30 40 50 3 4 5 6 10 20 30 20 40 30 0 30 0 40 0 5 100 3 10 20 30 40 50 3 4 5 6 10 20 30 20 40 30 20 0 0 0 0 思路: 条件: 投资回报最大;风险值小于X, 投资额小于N """ m, N, X = map(int, input().split()) # 投资回报率序列 a = list(map(int, input().split())) # 风险值序列 b = list(map(int, input().split())) # 最大投资额度序列 c = list(map(int, input().split())) max_money = 0 res = [] # 循环产品数量 for i in range(m): for j in range(i+1, m): if N >= c[i] + c[j] and X >= b[i] + b[j]: temp = a[i]*c[i] + a[j]*c[j] max_money = max(max_money, temp) res = [i, j] # 防止两个产品不满足风险值和总额,只能选一个产品 if not res: for i in range(m): if N >= c[i] and X >= b[i]: max_money = max(max_money, a[i]*c[i]) res = [i] # print(max_money, res) res_money = list() for i in range(len(c)): if i in res: res_money.append(c[i]) else: res_money.append(0) print(res_money)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。