博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记1126 - Fib的计算方法,降低了时间复杂度
阅读量:5321 次
发布时间:2019-06-14

本文共 780 字,大约阅读时间需要 2 分钟。

#include 
#include
#define NUM 10//如果NUM很大的话,应该申请的动态内存要用long类型吧?int main() { int i; int *pFib = NULL; //在main中,申请一块内存,用于存储Fib数列的各个值; pFib = malloc(NUM * sizeof(int)); for (i = 0; i < NUM; i++) pFib[i] = 0; for (i = 1; i <= NUM; i++) printf("Fib(%d)=%d\n",i,Fib(i,pFib)); free(pFib); return 0;}long int Fib(int N,int *pFib) { if (N <= 1) { if (pFib[N] == 0) pFib[N] = 1; return pFib[N]; } else { if (pFib[N - 1] == 0) pFib[N - 1] = Fib(N - 1, pFib); if (pFib[N - 2] == 0) pFib[N - 2] = Fib(N - 2, pFib); return pFib[N - 1] + pFib[N - 2]; }}

 

## 通过将已经求过的FIB数列保存起来,可以大大缩减运行时间。

转载于:https://www.cnblogs.com/leaver/p/7900658.html

你可能感兴趣的文章
zdlzxg
查看>>
iOS上获得MAC地址
查看>>
Linux Samba安装与使用
查看>>
什么是智能dns解析
查看>>
企业架构 - 企业架构成熟度模型(EAMM)
查看>>
读书笔记:软件人才-管理的艺术
查看>>
ECMAscript 学习笔记(02)
查看>>
7z压缩gopath的src的批处理
查看>>
BZOJ2904
查看>>
CF576E
查看>>
【转载】计算机程序的思维逻辑 (5) - 小数计算为什么会出错?
查看>>
12、第七 - 网络编程基础 - 线程中的信号量(Semaphore)
查看>>
Linux Mysql 自动备份
查看>>
[转]MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'(111) 的问题
查看>>
[基础] 常见分布
查看>>
安装eclipse和CDT
查看>>
浅谈对象的序列化(Serialize)
查看>>
IIS 状态代码
查看>>
iOS 简单获取当前地理坐标
查看>>
第四周 兴趣问题清单
查看>>