练习2:已知一个数列从第1项开始的前3项为0、0、1,以后的各项都是其相邻的前3项 之和.要求使用递归方法编写函数fun(n)求该数列第n项的值,返回值为长整型,并写出相 应的主函数.
时间: 2024-05-05 21:22:11 浏览: 13
递归方法可以通过调用函数本身来实现,由于此题需要计算前3项的和,因此需要使用一个数组来保存前3项的值。具体实现如下:
```python
def fun(n, lst):
if n < 3:
return lst[n]
else:
lst.append(lst[-1] + lst[-2] + lst[-3])
return fun(n-1, lst)
def main():
lst = [0, 0, 1]
n = int(input("请输入要求第几项:"))
print("第{}项的值为:{}".format(n, fun(n-1, lst)))
if __name__ == '__main__':
main()
```
在主函数中,首先定义一个包含前3项的列表lst。然后输入要求的项数n,将n-1作为参数传递给递归函数fun中,同时将lst也作为参数传递进去。fun函数中,如果n小于3,返回lst中第n个元素;否则,将前3项的和添加到lst中,并递归调用fun函数计算第n-1项的值。最后,在主函数中输出结果。