首页 > 试题广场 >

给你一个数列,要求你构造一个新数列,新数列里每一个值小于原数

[问答题]
给你一个数列,要求你构造一个新数列,新数列里每一个值小于原数列的值且大于1,让abs(A[i]- A[i-1])的总值最大,比如 10 2 10 2 10,你可以构建10 1 10 1 10,输出值为36
def main(N): if len(N) == 1: return N elif len(N) == 2: if N[0] >= N[1]: return [N[0],1] else: return [1,N[1]] else: M = main(N[:-1]) if abs(1-M[-1]) >= abs(N[-1]-M[-1]): return M+[1] else: return M+[N[-1]] if __name__ == '__main__': N = str(input("请输入数列:")) n = list(map(int,N.split(','))) res = main(n) print(res) print(sum([abs(res[i]-res[i-1]) for i in range(1,len(res))]))
发表于 2024-07-17 11:14:36 回复(0)