杭电-------2047阿牛的eof牛肉串(C语言写)

/*

主要看最后一个是否为O,若为O,则倒数第二个不能为O,则为a[n-2]*1*2;

若不为O,则最后一个有两个选择则为a[n-1]*2

*/



#include<stdio.h>

long long a[40] = { 0 };

long long recrusion(int n) {
    if (a[n] > 0) {
        return a[n];
    }
    return a[n] = recrusion(n - 2) * 2 + recrusion(n - 1) * 2;
}

int main() {
    int n;
    a[1] = 3;
    a[2] = 8;
    while (~scanf("%d", &n)) {
        recrusion(n);
        printf("%lld
", a[n]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/lin0/p/8400086.html