题目1:算法训练 寻找数组中最大值
解题思路
用内置函数max() 求最大值
用内置函数index() 找最大值索引
代码
n = int(input())
list = list(map(int, input().split()))
max = max(list)
index = list.index(max)
print(max, index)
题目2:算法训练 预测身高
解题思路
没啥好说的,判断求解,注意输出格式
代码
data = list(map(float, input().split()))
if data[0] == 0:
ans = (data[1] * 0.923 + data[2]) /2
print("%.3f" % ans)
else:
ans = (data[1]+ data[2]) / 2 * 1.08
print("%.3f" % ans)
题目3:算法训练 最大的算式
解题思路
动态规划,行列分别为 N个数和K个乘号
通式 :dp[i, j] = max(dp[i, j], dp[p, j - 1] * (dp[i, 0] - dp[p, 0]))
代码
n, k = map(int, input().split())
list = list(map(int, input().split()))
tmp = 0
dp = [[0 for _ in range(k+1)] for _ in range(n+1)]
for i in range(0, n):
tmp += list[i]
dp[i+1][0] = tmp
if k == 0:
print(dp[n][k])
else:
# 列 k个 *
for j in range(1, k+1):
# 行 N 个数
for i in range(2, n+1):
if j < i: # *需要小于 拿的数
for p in range(1, i):
dp[i][j] = max(dp[i][j], dp[p][j-1]*(dp[i][0] - dp[p][0]))
print(dp[n][k])