http://uva.onlinejudge.org/external/110/11069.html
我太急了 一下子沒想出來就看別人code
這其實很好想啊…
我好廢啊= =
因為不能走到相鄰的點
中間也不能有地方能插入合法的點
所以只有兩種狀況
走到第n + 2個點
或是第n + 3個點
int dp[77];
int main()
{
int i, n;
dp[1] = 1;
dp[2] = 2;
dp[3] = 2;
while (scanf("%d", &n) != EOF) {
if (dp[n]) {
printf("%d\n", dp[n]);
continue;
}
for (i = 4; i <= n; i++) {
dp[i] = dp[i - 2] + dp[i - 3];
}
printf("%d\n", dp[n]);
}
return 0;
}