动态规划 这算不算?
程序代码:#include <stdio.h>
int fib(int n, int * pbuf) {
if(n > -1 && n < 3)
return 1;
else if(n < 0)
return -1;
if(!pbuf[n - 1])
pbuf[n - 1] = fib(n - 1, pbuf);
if(!pbuf[n - 2])
pbuf[n - 2] = fib(n - 2, pbuf);
return pbuf[n - 1] + pbuf[n - 2];
}
int main(void) {
int buf[100] = {0};
printf("%d\n", fib(5, buf));
return 0;
}
由fib(5)的递归调用树来看,fib(3)、fib(2)、fib(1)都有优化的余地,但不知道我的算法对不对?请前辈指导一下。。。[ 本帖最后由 lz1091914999 于 2011-7-26 13:58 编辑 ]









