第 10 筆資料有減去第 0 年的 2 隻兔子
第 11 筆資料卻沒有減去第 1 年的 6 隻兔子,往後資料也都沒有減照題意應該是這樣:
a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - a(n-10)
但事實上這題測資卻是這樣:
a(n) = 2[a(n-1) - a(n-2)] + a(n-1) - 2, if n>10
a(n) = 2[a(n-1) - a(n-2)] + a(n-1), else
測資沒錯吧,到第10年減去第0年的2隻兔子,第11年減去第1年出生的4隻兔子(不是減6),這道題其實可以用二進制來做:
#include <stdio.h>
int main(void)
{
int i;
unsigned long long r[63];
for(i=1,r[0]=0x2; i<63; i++)
r[i] = (r[i-1]<<1) | (i<=9?0x2:0);
while(scanf("%d", &i) != EOF)
printf("%llu\n", r[i]);
return 0;
}