解题思路:
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 人评分
简单编码 (C++代码)浏览:675 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:608 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:597 |
用筛法求之N内的素数。 (C语言代码)浏览:1231 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:587 |
蛇行矩阵 (C语言代码)浏览:742 |
printf基础练习2 (有点不明白)浏览:836 |
【金明的预算方案】 (C++代码)浏览:838 |
简单的a+b (C语言代码)浏览:572 |
DNA (C语言代码)浏览:390 |