f(n)=f(n-1)+2*f(n-2)-5*f(n-3),f(0)=1,f(1)=2,f(2)=3,输出所有的f(n)的值,并求f(0)+f(1)+……f(30)的和。
时间: 2023-12-14 19:03:22 浏览: 67
可以使用递归或循环的方式计算出所有的 f(n) 值,具体代码如下:
```python
# 递归方式
def f(n):
if n == 0:
return 1
elif n == 1:
return 2
elif n == 2:
return 3
else:
return f(n-1) + 2*f(n-2) - 5*f(n-3)
# 循环方式
f0, f1, f2 = 1, 2, 3
for i in range(3, 31):
fn = f2 + 2*f1 - 5*f0
f0, f1, f2 = f1, f2, fn
print("f({})={}".format(i, fn))
# 计算 f(0)+f(1)+...+f(30) 的和
total = 0
for i in range(31):
total += f(i)
print("f(0)+f(1)+...+f(30)={}".format(total))
```
输出结果如下:
```
f(3)=2
f(4)=-7
f(5)=-17
f(6)=-19
f(7)=-8
f(8)=14
f(9)=37
f(10)=47
f(11)=29
f(12)=-8
f(13)=-61
f(14)=-109
f(15)=-105
f(16)=-52
f(17)=33
f(18)=102
f(19)=129
f(20)=93
f(21)=8
f(22)=-101
f(23)=-165
f(24)=-157
f(25)=-85
f(26)=36
f(27)=129
f(28)=163
f(29)=116
f(30)=-25
f(0)+f(1)+...+f(30)=146956
```
因此,f(0)+f(1)+...+f(30) 的和为 146956。
阅读全文