极客 - 博文3 - 菲波那切数列之递归改进版
来源:互联网 发布:samba windows 无权限 编辑:程序博客网 时间:2024/06/15 10:30
/* *文件名称: 斐波那契数列数组实现改进版 *作者: 田鑫 *完成日期: 2016 - 09 - 03 *版本号: v2.0 *实现思路: 利用数组来装中间已经计算过的值 那么如果下次计算到前次计算过的值就可以直接 返回之前计算过的值,不然的话就计算后返回值 */ /*代码实现*/ #include <stdio.h> long feibo(int n); /*函数声明*/ void iniData(int n); /*声明初始化函数*/ long a[21]; /*因为要保留上一次计算的值,所以声明为全局变量*/ int main(void) { int n = 0; int i; iniData(20); /*对数组进行初始化*/ for(i = 1; i <= 20; i++) { printf("%8d", feibo(i)); /*将i的值传入, 并将返回值最为参数输出*/ if(i % 10 == 0) printf("\n"); } return 0; } long feibo(int n) { if (a[n] != -1) /*如果数组值不为-1,则存储有上一次计算的值, 直接返回*/ return a[n]; if (n ==1 || n == 0) return n; a[n] = feibo(n - 1) + feibo(n - 2);/*数组等于-1,则没有计算过, 计算以后返回即可*/ return a[n]; } void iniData(int n) { int i; for(i = 0; i <= n; i++) a[i] = -1; } /*易错提示: 将返回值类型作为long是为了避免数据溢出, 也可声明为double类型 如果声明为 int 类型的话数据容易溢出*/
/*运行结果*/
1 0
- 极客 - 博文3 - 菲波那切数列之递归改进版
- 【递归】 之 菲波那契数列
- JAVA递归实现菲波那切数列数列
- 递归之斐波那契数列
- 递归之斐波那契数列
- 递归之斐波那契数列
- 极客 - 博文2 - 斐波那契数列之递归实现
- lx007菲波那切数列(使用递归)
- 【数据结构】汉诺塔和菲波那切数列--递归
- 剑指offer 2.4 递归和循环-斐波那契数列计算改进
- [Java实现]Filbonacci斐波那契数列递归带来的问题和改进
- 求裴波那契数列的第n项---递归+改进
- 极客 - 博文1 - 菲波那切数列之数组实现
- 递归三部曲之深入理解斐波那契数列
- 递归练习之斐波那契数列
- 斐波那契数列之递归、循环
- 浅入快出--递归之斐波那契数列(一)
- 递归调用之斐波那契数列
- Codeforces 369 D.Directed Roads(数学,判断图中每个环的边数)
- 事务
- js小笔记
- Hdu 5853 Jong Hyok and String
- java用freemarker导出word
- 极客 - 博文3 - 菲波那切数列之递归改进版
- hbase安装文档
- 《java多线程编程核心技术》读书笔记2.1
- 浅谈字节对齐
- poj1182
- 调用门
- 特权级--ring0到ring3
- 斗战仙隐私政策
- vm安装ubuntu分辨率