还是递推 , 方程是

                      f1[n] = 2 * (f1[n - 1] + f2[n - 1])

                      f2[n] = f1[n - 1]

 

#include<stdio.h>
int main()
{
    long long dp1[41],dp2[41];
    int n;

    dp1[1]=1,dp1[2]=2,dp2[1]=0,dp2[2]=1;
    for(int i=3;i<41;i++)
        dp1[i]=2*(dp1[i-1]+dp2[i-1]),dp2[i]=dp1[i-1];
    while(scanf("%d" , &n) != EOF)
        printf("%lld\n" , 3*dp1[n]+2*dp2[n]);
    
    return 0;
}
posted on 2018-02-25 21:09  23~  阅读(94)  评论(0)    收藏  举报