求斐波那契额数列的前10项 ,要求用循环算法和递归速算法一起算
时间: 2023-06-12 17:07:35 浏览: 154
好的,我来给你计算斐波那契数列的前10项。
首先,斐波那契数列是这样的数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...
其中,第一项是0,第二项是1,从第三项开始,每一项都是前两项的和。
接下来,我们分别使用循环算法和递归算法来计算斐波那契数列的前10项。
1. 循环算法
循环算法比较简单,我们可以使用一个for循环来依次计算每一项的值,并存储在一个数组中。代码如下:
```
#include <stdio.h>
int main()
{
int fib[10] = {0, 1}; // 初始化前两项
int i;
for (i = 2; i < 10; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算第i项的值
}
for (i = 0; i < 10; i++) {
printf("%d ", fib[i]); // 输出前10项
}
return 0;
}
```
输出结果为:0 1 1 2 3 5 8 13 21 34
2. 递归算法
递归算法比较复杂,我们需要定义一个函数来计算第n项的值。递归算法的思路是:如果要计算第n项的值,就先计算第n-1项和第n-2项的值,然后将它们相加。需要注意的是,递归算法的效率比较低,因为它会重复计算很多项的值。代码如下:
```
#include <stdio.h>
int fibonacci(int n)
{
if (n < 2) {
return n; // 前两项的值分别为0和1
} else {
return fibonacci(n-1) + fibonacci(n-2); // 递归计算第n项的值
}
}
int main()
{
int i;
for (i = 0; i < 10; i++) {
printf("%d ", fibonacci(i)); // 输出前10项
}
return 0;
}
```
输出结果为:0 1 1 2 3 5 8 13 21 34
以上就是使用循环算法和递归算法计算斐波那契数列的前10项的方法。
阅读全文