已知 f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f(1)=2,f(2)=3,求f(0)+f(1)+…f(40),要求:采用函数递归求解。用C语言编程
时间: 2023-08-05 18:02:12 浏览: 295
C语言中利用递归的方式得到n!
5星 · 资源好评率100%
好的,我们可以根据题目给出的递推式和初始值,编写如下的递归函数来计算 f(n):
```c
#include <stdio.h>
int f(int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return 2;
} else if (n == 2) {
return 3;
} else {
return f(n-1) + 2*f(n-2) - 5*f(n-3);
}
}
int main() {
int sum = 0;
for (int i = 0; i <= 40; i++) {
sum += f(i);
}
printf("%d\n", sum);
return 0;
}
```
这个程序中,我们首先定义了一个递归函数 `f`,用来计算 f(n) 的值。当 n = 0, 1, 2 时,我们直接返回对应的初始值。当 n > 2 时,我们根据递推式计算 f(n) 的值。
接着,在 `main` 函数中,我们循环调用 `f` 函数计算 f(0)+f(1)+…f(40) 的值,并将结果存储在 `sum` 变量中。最后,我们将 `sum` 输出即可。
希望这个程序可以帮助你解决问题。如果还有其他问题,欢迎随时提出。
阅读全文