比较水,主要就是观察规律,奇数长度是不可能有组合的,偶数组合的话就找规律就行了,注意n=0的时候结果是1!!!,为啥不是0。。害我WA了一次
#include<stdio.h>
int main()
{
int a[31], i, j;
a[0] = 1;
a[2] = 3;
for (i = 4; i <= 30; i += 2)
{
int sum = 2;
for (j = 2; j < i; j += 2)
if (j == 2)
sum += 3 * a[i - 2];
else
sum += 2 * a[i - j];
a[i] = sum;
}
int n;
while (scanf("%d", &n), n != -1)
printf("%d\n", n % 2 ? 0 : a[n]);
return 0;
}