第一组数据

前二十个元素:
1 1 2 3 5
8 13 21 34 55
89 144 233 377 610
987 1597 2584 4181 6765

递推式:f(1)=1,f(2)=1
f(n)=f(n-1)+f(n-2)(n>2)

代码实现

const int maxn=25;
long long num1[maxn];
void change1(void)
{
   num1[1]=1;num1[2]=1;
   for(int i=3;i<=maxn;i++)
   {
       num1[i]=num1[i-1]+num1[i-2];
   }
}

第二组数据

前二十个元素:
1 2 5 14 42
132 429 1430 4862 16796
58786 208012 742900 2674440 9694845
35357670 129644790 477638700 1767263190 6564120420

递推式: f(0)=1.f(1)=1;
f(n)={f(0)f(n-1)+f(1)f(n-2)+...+f(n-1)*f(0)}(n>2)

代码实现

const int maxn=25;
long long num1[maxn];
void change2(void)
{
    num2[0]=1;num2[1]=1;
    for(int i=2;i<=maxn;i++)
    {
        num2[i]=0;
        for(int j=0;j<i;j++)
        {
            num2[i]+=num2[j]*num2[i-j-1];
        }
    }

}

第三组数据

前二十个元素:
1 2 2 4 4
6 6 10 10 14
14 20 20 26 26
36 36 46 46 60

递推式:f(1)=1
f(n)=f(1)+f(2)+...+f(n/2)+1

代码实现

long long num3[maxn];
long long temp;
void change3(void)
{
    num3[1]=1;temp=num3[1];
    for(int i=2;i<=maxn;i++)
    {
        num3[i]=temp+1;
        if(i%2==1)
        temp+=num3[(i+1)/2];
    }
}