解题思路:
f(n) =
1, (n = 1, 2)
2, (n = 3)
f(n - 1) + f(n - 3), (n > 3)
直接打表。
参考代码:
#include<stdio.h> #define Max 20 int main() { int f[Max + 1], n; f[1] = f[2] = 1; f[3] = 2; for (int i = 4; i <= Max; i++) { f[i] = f[i - 1] + f[i - 3]; } while ((scanf("%d", &n)) != EOF) { if (n > 0 && n <= Max) { printf("%d\n", f[n]); } } return 0; }
0.0分
0 人评分