给你一个数列,要求你构造一个新数列,新数列里每一个值小于原数列的值且大于1,让abs(A[i]- A[i-1])的总值最大,比如 10 2 10 2 10,你可以构建10 1 10 1 10,输出值为36
区块链毕设网qklbishe.com为您提供问题的解答
给你一个数列,要求你构造一个新数列,新数列里每一个值小于原数列的值且大于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))]))
14:36
以上就是关于问题给你一个数列,要求你构造一个新数列,新数列里每一个值小于原数列的值且大于1,让abs(A[i]- A[i-1])的总值最大,比如 10 2 10 2 10,你可以构建10 1 10 1 10,输出值为36的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训