用递归的方法求解,帕多瓦数列:1,1,1,2,2,3,4,5,7,9,12,16,21,28,...从第4项开始,第i项等
时间: 2023-11-10 16:31:59 浏览: 32
于第i-2项和第i-3项之和。
可以用以下的递归函数来求解帕多瓦数列:
```
def padovan(n):
if n < 3:
return 1
else:
return padovan(n-2) + padovan(n-3)
```
其中,如果n小于3,返回1,否则返回第n-2项和第n-3项的和。
你可以通过调用该函数来获得帕多瓦数列的任意项。例如,要求第10项,可以调用padovan(10),得到结果为12。
相关问题
用递归的方法求Fibonacci数列:1,1,2,3,5,8,……的前40个数
以下是用递归的方法求Fibonacci数列前40个数的Python代码:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return (fibonacci(n-1) + fibonacci(n-2))
for i in range(40):
print(fibonacci(i), end=' ')
```
输出结果为:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296
C语言用递归的方法求Fibonacci数列:1,1,2,3,5,8,……的前40个数
以下是C语言用递归的方法求Fibonacci数列的前40个数的代码和解释:
```c
#include <stdio.h>
int fib(int n); // 声明递归函数
int main() {
int i, n;
printf("Input Fibonacci's number:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
printf("%6d", fib(i)); // 调用递归函数并输出结果
if (i % 5 == 0) {
printf("\n"); // 每5个数换行
}
}
printf("\n");
return 0;
}
int fib(int n) { // 定义递归函数
if (n == 1 || n == 2) {
return 1; // 前两个数为1
} else {
return fib(n - 1) + fib(n - 2); // 递归计算后面的数
}
}
```
运行结果:
```
Input Fibonacci's number:40
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765
10946 17711 28657 46368 75025
121393 196418 317811 514229 832040
1346269 2178309 3524578 5702887 9227465
14930352 24157817 39088169 63245986 102334155
```