【HDOJ】2047 阿牛的EOF牛肉串
递推,公式为kinds[i] = (kinds[i-1] + kinds[i-2]) * 2。考虑最后一个为E/F,有2*kinds[i-1]种情况;最后一个若为o,则倒数第二个则为E/F,则有2*kinds[i-2]种情况。两者相加,推得公式。
#include <stdio.h> #define MAXNUM 45 unsigned long long kinds[MAXNUM] = {1, 3}; int main() { int n; int i; for (i=2; i<MAXNUM; ++i) { kinds[i] = ( kinds[i-1] + kinds[i-2] ) *2; } while (scanf("%d", &n) != EOF) { printf("%I64u\n", kinds[n]); } return 0; }