斐波那契数列编程c++
时间: 2023-09-19 20:13:09 浏览: 100
#include <stdio.h>
// 递归方式实现斐波那契数列
int fib(int n) {
if (n <= 1) {
return n;
} else {
return fib(n-1) + fib(n-2);
}
}
// 循环方式实现斐波那契数列
int fibLoop(int n) {
int a = 0, b = 1, c, i;
if (n == 0) {
return a;
}
for (i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
int main() {
int n = 10;
printf("斐波那契数列前 %d 项为:\n", n);
for (int i = 0; i < n; i++) {
printf("%d ", fib(i));
}
printf("\n");
for (int i = 0; i < n; i++) {
printf("%d ", fibLoop(i));
}
return 0;
}
相关问题
C++编程【斐波那契数列】
好的,我知道斐波那契数列。斐波那契数列指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递归的方法定义: F(0) = 0, F(1) = 1; F(n) = F(n-1) + F(n-2) (n≥2,n∈N*)。
在C语言中可以写出以下代码实现斐波那契数列的计算:
```c
#include<stdio.h>
int fibonacci(int n) {
if(n==0) {
return 0;
}
if(n==1 || n==2) {
return 1;
}
int a=1, b=1, c;
for(int i=3; i<=n; i++) {
c=a+b;
a=b;
b=c;
}
return c;
}
int main() {
int n;
printf("请输入要计算的斐波那契数列数的项数: ");
scanf("%d",&n);
printf("第%d项的值为:%d\n",n,fibonacci(n));
return 0;
}
```
这段代码使用了循环的方式计算斐波那契数列的值,如果输入的数为0,则输出的值为0,如果是1或2,则输出的值为1,其它的项数按照递推公式计算。
斐波那契数列通项c++
斐波那契数列通项公式为:$f_n=\frac{1}{\sqrt{5}}[(\frac{1+\sqrt{5}}{2})^n-(\frac{1-\sqrt{5}}{2})^n]$。但是在实际编程中,使用递推公式$f[n] = f[n-1] + f[n-2]$更为方便和高效。可以使用循环或递归的方式实现斐波那契数列的求解。另外,引用中提供了一种利用数组实现斐波那契数列的方法,可以通过预处理数组来快速求解任意位置的斐波那契数列值。
阅读全文