算法设计与分析迭代法求斐波那契数列
时间: 2023-11-27 22:47:42 浏览: 86
以下是使用迭代法求解斐波那契数列的Python代码:
```python
def fibonacci(n):
if n <= 1:
return n
else:
a, b = 0, 1
for i in range(2, n+1):
c = a + b
a, b = b, c
return b
# 示例
print(fibonacci(10)) # 输出:55
```
该算法的时间复杂度为O(n),空间复杂度为O(1)。
相关问题
迭代法输出斐波那契数列用c语言
在C语言中,迭代法是一种常用的计算斐波那契数列的方法,它不需要递归调用,效率更高。下面是一个简单的迭代算法示例:
```c
#include <stdio.h>
// 函数声明
unsigned long long fibonacci(int n);
int main() {
int num;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &num);
if (num <= 0) {
printf("输入错误!斐波那契数列索引应大于0。\n");
} else {
for (int i = 0; i < num; i++) {
printf("%llu ", fibonacci(i));
}
printf("\n");
}
return 0;
}
// 斐波那契数列迭代计算函数
unsigned long long fibonacci(int n) {
unsigned long long fib[2] = {0, 1}; // 初始化数组,第一、二项分别为0和1
if (n == 0)
return fib[0];
else if (n == 1)
return fib[1];
for (int i = 2; i < n + 1; i++) {
fib[i % 2] = fib[(i - 1) % 2] + fib[(i - 2) % 2]; // 只保留奇数位置的值
}
return fib[n % 2]; // 返回第n项,由于循环更新了偶数位,此处取奇数位的结果
}
```
在这个程序中,`fibonacci()` 函数通过迭代计算斐波那契数列的每一项,并仅存储当前项和前两项的值。运行程序后,你可以输入想要计算的项数,程序会打印对应项的斐波那契数值。
迭代算法解决斐波那契数列c语言代码实现
迭代法是一种常用的求解斐波那契数列的方式,它通过循环结构逐步计算每个数字,避免了递归带来的效率损耗。以下是使用C语言实现迭代法计算斐波那契数列的代码:
```c
#include <stdio.h>
// 使用迭代法计算斐波那契数列的函数
unsigned long long fibonacci(int n) {
if (n <= 0)
return 0;
else if (n == 1)
return 1;
unsigned long long fib_n_1 = 0, fib_n_2 = 1;
for (int i = 2; i <= n; i++) {
unsigned long long next_fib = fib_n_1 + fib_n_2;
fib_n_1 = fib_n_2;
fib_n_2 = next_fib;
}
return fib_n_2;
}
int main() {
int num_terms;
printf("请输入你想计算的斐波那契数列的项数: ");
scanf("%d", &num_terms);
printf("斐波那契数列的前 %d 项是:\n", num_terms);
for (int i = 1; i <= num_terms; i++) {
printf("%llu ", fibonacci(i));
}
return 0;
}
```
在这个代码中,`fibonacci`函数接收一个整数`n`作为输入,并返回第`n`个斐波那契数。主函数会读取用户想要的项数,并打印出相应的序列。
阅读全文