#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
if(n == 1)//n = 1时情况特殊
{
printf("%d",0);
}
if(n == 2 || n == 3)//n = 2或 n = 3时情况亦特殊
{
printf("%d",1);
}
int An = 0;//开始递推数列
if(n > 3)
{
int * arr = (int *)malloc(n * sizeof(int));
arr[0] = 0;
arr[1] = 1;
arr[2] = 1;
for(int i = 3;i < n;i++)
{
arr[i] = arr[i - 3] + 2 * arr[i - 2] + arr[i - 1];//递推表达式,可赋值法尝试对错
An = arr[i];
}
printf("%d",An);
}
return 0;
}

京公网安备 11010502036488号