随便写一下,没有整理,注释比较多,大家按需自取。
#include <iostream>
using namespace std;
int PBNQ1(int n)
{
if(n<2)
{
return n==0 ? 0:1;
//如果第一个数是真值,则返回第二个数,否则返回第三个数
//此处0时为真返回0,1时为假返回1。
}
return PBNQ1(n-1)+PBNQ1(n-2);
//如果大于等于2,则进行递归,直到跳出递归循环。
//相当于是自顶向下的过程——逐渐拆分
//该函数的功能是输出第n项裴波那契数列的值。
}
int main(int argc, char** argv)
{
//1.常规的裴波那契构造方式
int n1=0;
//裴波那契数列的长度
cout<<"裴波那契数列的长度:"<<endl;
cin>>n1;
int a1[n1];
//注意:此处在定义数组的时候即使使用未知变量也可以编译通过,就是效率较低。
a1[0]=0;
a1[1]=1;
for(int i=2;i<=n1-1;i++)
{
a1[i]=a1[i-1]+a1[i-2];
}
cout<<"1号裴波那契数列如下:"<<endl;
for(int j=0;j<=n1-1;j++)
{
cout<<a1[j]<<" ";
}
cout<<endl;
//2.通过函数来构造裴波那契数列
cout<<"通过函数来构造裴波那契数列:"<<endl;
for(int n2=0;n2<=9;n2++)
{
cout<<PBNQ1(n2)<<" ";
}
return 0;
}