用C++语言计算斐波那契数列
时间: 2023-11-28 18:06:04 浏览: 64
斐波那契数列是一个经典的数列,定义如下:
F(0) = 0
F(1) = 1
F(n) = F(n-1) + F(n-2) (其中n>1)
用C语言实现斐波那契数列的代码如下:
```c
#include <stdio.h>
int main()
{
int n, i;
int fib[100]; // 定义数组保存斐波那契数列
printf("请输入要求的斐波那契数列的项数:");
scanf("%d", &n);
fib[0] = 0; // 初始化
fib[1] = 1;
for (i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算斐波那契数列
}
printf("斐波那契数列的前%d项为:\n", n);
for (i = 0; i < n; i++) {
printf("%d ", fib[i]); // 输出斐波那契数列
}
return 0;
}
```
上述代码中,我们使用一个数组`fib`来保存斐波那契数列,然后利用循环计算斐波那契数列的每一项,最后输出结果。
相关问题
如何用C++实现计算斐波那契数列的前n项和?
在C++中,计算斐波那契数列的前n项和可以通过循环或者动态规划的方式实现。这里我们提供一种动态规划的方法,因为这种方法更高效,避免了递归带来的重复计算。
```cpp
#include <iostream>
using namespace std;
int fib(int n) {
if (n <= 0) return 0;
else if (n == 1) return 1;
int t1 = 0, t2 = 1, sum = 1; // 初始化前两项和为1
for (int i = 2; i < n; ++i) {
int next = t1 + t2; // 计算下一项
sum += next; // 累加到总和
t1 = t2; // 更新t1和t2
t2 = next;
}
return sum;
}
int main() {
int n;
cout << "请输入你想计算斐波那契数列的项数: ";
cin >> n;
cout << "斐波那契数列的前 " << n << " 项和为: " << fib(n) << endl;
return 0;
}
C++语言开发斐波那契数列程序 实验报告
实验目的:
1.了解C++语言基本语法和程序框架
2.掌握递归和循环两种实现斐波那契数列的方式
3.加深对递归和循环的理解,并对比两种方式的优缺点
实验步骤:
1.首先了解斐波那契数列的定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2) (n>=2)
2.根据定义,可以写出递归实现的代码:
```cpp
#include<iostream>
using namespace std;
int fib(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
return fib(n-1)+fib(n-2);
}
int main()
{
int n;
cout<<"请输入斐波那契数列的项数:";
cin>>n;
cout<<"斐波那契数列的前"<<n<<"项为:";
for(int i=0;i<n;i++)
cout<<fib(i)<<" ";
return 0;
}
```
3.递归实现的优点是代码简单易懂,并且直接套用定义,缺点是时间复杂度较高,计算量大。
4.接下来是循环实现的代码:
```cpp
#include<iostream>
using namespace std;
int fib(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
int f0=0,f1=1,f2;
for(int i=2;i<=n;i++)
{
f2=f0+f1;
f0=f1;
f1=f2;
}
return f2;
}
int main()
{
int n;
cout<<"请输入斐波那契数列的项数:";
cin>>n;
cout<<"斐波那契数列的前"<<n<<"项为:";
for(int i=0;i<n;i++)
cout<<fib(i)<<" ";
return 0;
}
```
5.循环实现的优点是时间复杂度低,计算量小,缺点是代码较为繁琐,容易出错。
实验结论:
通过本次实验,我们了解了C++语言的基本语法和程序框架,掌握了递归和循环两种实现斐波那契数列的方式,并对比了两种方式的优缺点。同时,我们也加深了对递归和循环的理解,为以后的程序开发打下了基础。
阅读全文