C语言有一个数列满足an=an-1 2an-2,已知a1=1, a2=1,求a15的值和a20的值

C语言有一个数列满足an=an-1 2an-2,已知a1=1, a2=1,求a15的值和a20的值。.

第1个回答  2021-05-25

#include<stdio.h>

int main()

{ int i,j,f[21]={0,1,1};

  for(i=3; i<21; i++)

    f[i]=f[i-1]+2*f[i-2];

  printf("f[%d]=%d\nf[%d]=%d\n",15,f[15],20,f[20]);

  return 0;

}

第2个回答  2021-05-25

格里编程办公技巧 同学 提供了递归思路,以下示例仅提供另一种思路。

#include <stdio.h>

int f(int n) {

    int i, a = 1, b = 1;

    if(i < 3) return 1;

    for(i = 2; i < n; ++i) {

        int t = a + 2 * b;

        a = b;

        b = t;

    }

    return b;

}


int main()

{

    printf("a15= %d\na20= %d\n", f(15), f(20));

    return 0;

}



第3个回答  2021-05-24
a15为11007
a20为352255
第4个回答  2021-05-24
#include<stdio.h>
int f(int n)
{
if(n == 1 || n == 2)
return 1;
else
return f(n-1)+2*f(n-2);
}
int main()
{
printf("a15= %d\na20= %d\n", f(15), f(20));
return 0;
}
相似回答