📅  最后修改于: 2023-12-03 15:36:58.004000             🧑  作者: Mango
这个题目要求编写一个函数,接受一个整数列表作为参数,并返回四倍数列表,其中前三项在算术数列中,后三项在等比数列中。
def four_mult(lst: List[int]) -> List[int]:
pass
函数接受一个整数列表,列表长度为六,每个元素都为整数。
函数返回一个整数列表,列表长度为六,每个元素都为四倍数,即 $4 \times n$,其中前三项在算术数列中,后三项在等比数列中。
lst = [1, 2, 3, 2, 4, 8]
[4, 8, 12, 8, 16, 32]
前三项在算术数列中,我们可以计算出公差,然后根据公差计算出后三项在算术数列中的位置,最后计算出后三项在等比数列中的值。
from typing import List
def four_mult(lst: List[int]) -> List[int]:
# 计算前三项在算术数列中的公差
d = lst[1] - lst[0]
# 计算后三项在算术数列中的位置
a4 = lst[2] + d
a5 = lst[2] + 2 * d
a6 = lst[2] + 3 * d
# 计算后三项在等比数列中的值
r = a5 / a4
b4 = lst[2] * r
b5 = b4 * r
b6 = b5 * r
# 返回结果
return [4*n for n in (lst + [b4, b5, b6])]