📅  最后修改于: 2023-12-03 15:26:53.780000             🧑  作者: Mango
本程序旨在计算每对两个数组构成的修正斐波那契数列的n个项的总和。
本程序使用递归算法,每次将两个数组中的前两个数相加,并将结果加到修正斐波那契数列的总和中。然后将数组中的第一个数删除,并继续递归,直到计算出n个项为止。
本程序需要两个数组作为输入参数,分别代表修正斐波那契数列的前两个数。同时还需要输入一个整数n,代表需要计算的项数。
def sum_modified_fibonacci(first: List[int], second: List[int], n: int) -> int:
"""
计算每对两个数组构成的修正斐波那契数列的n个项的总和
:param first: 修正斐波那契数列的第一项
:param second: 修正斐波那契数列的第二项
:param n: 需要计算的项数
:return: 修正斐波那契数列n个项的总和
"""
if n == 1:
return first[0]
elif n == 2:
return first[0] + second[0]
else:
sum = first[0] + second[0]
first.pop(0)
second.pop(0)
first.append(sum)
second.append(first[0])
return sum + sum_modified_fibonacci(first, second, n-1)
first = [2]
second = [1]
n = 6
print(sum_modified_fibonacci(first, second, n))
33
first = [1]
second = [1]
n = 8
print(sum_modified_fibonacci(first, second, n))
54