第一个记忆化搜索,理解得差不多啦。贴下代码咯~

CODE:

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 using namespace std;
 5 
 6 int FIB[1001];
 7 
 8 int fib(int n)
 9 {
10     int i;
11     if(n > 2return FIB[n] == -1 ? FIB[n]=fib(n-1)+fib(n-2):FIB[n];
12     else return 1;
13     
14 }
15 
16 
17 int main()
18 {
19     int n;
20     memset(FIB, -1sizeof(FIB));
21     FIB[0] = FIB[1] = 1;
22     while(~scanf("%d", &n))
23     {
24         printf("%d\n", fib(n));
25     }
26     return 0;

27 } 

posted on 2012-07-20 22:01  有间博客  阅读(646)  评论(0编辑  收藏  举报