**斐波那契数列有两种形式
1.从0开始 0 1 1 2 3 5 8........
2.从1开始 1 1 2 3 5 8 13.........
第一二项固定,后面一项等于前面两项的和。
*要输出斐波那契数列的第n项,我现在学了的有两种方法。
(我们以斐波那契数列的第一种形式来写代码。)
第一种不用数组法,第二种用数组法。
**第一种:不用数组法
#include<iostream>
using namespace std;
int main(){
int a=0,b=1,c;
int n;
cout<<"输入想要的是第几个数 ";
cin>>n;
for(int i=3;i<=n;i++)
{
c=a+b;
a=b;
b=c;
}
cout<<"第n个数为"<<c;
return 0; }
*思路:第一二项固定就给它定值就行; for循环中主要是在实现斐波那契数列后面一项等于前面两项的和这句话。
*输出结果:输入n为6,得到的结果是第6个数为5。
**第二种:用数组法
#include<iostream>
using namespace std;
int main(){
int a[40];
a[0]=0;
a[1]=1;
int n;
cout<<"输出想要的项数 ";
cin>>n;
for(int i=2;i<=n;i++)
a[i]=a[i-1]+a[i-2];
cout<<a[n-1];
return 0;
}
*思路:方法和不用数组的相同,只是用数组把所有的值都存在了数组里,最后只需要输出这个数组就行。而且输出数组这行代码不需要写在循环里。
*!注意的是:我们输出的是a[n-1],在数组中我们从第0项开始的,但是斐波那契数列从1项开始数,我们要的a[n]中的n相当于斐波那契数列的第n+1项,所以我们要斐波那契的第n项,输出数组里的就得是a[n-1]。
*输出结果:输入n为6,得到的结果是第6个数为5。