着色问题,递推,当超过3个块时,规律明显,此时可以是n-2的头尾重复+与头尾不同颜色,也可以是n-1+与头尾均不相同眼色情况。经典递推。注意long long。
#include <stdio.h> #define MAXNUM 52 long long kinds[MAXNUM] = {0,3,6,6}; int main() { int n; int i; for (i=4; i<MAXNUM; ++i) kinds[i] = kinds[i-2]*2 + kinds[i-1]; while (scanf("%d", &n) != EOF) { printf("%I64d ", kinds[n]); } return 0; }