斐波那契数列
来源:互联网 发布:井上真央松本润 知乎 编辑:程序博客网 时间:2024/05/29 11:42
//使用迭代的方式int fun1(int n){ if (n <= 2) return 1; int a, b, c; a = 1; b = 1; for (int i=3; i<=n; i++) { c = a + b; a = b; b = c; } return c;}//使用打表的方式int f[100];int fun2(int n){ f[1] = f[2] = 1; for (int i=3; i<=n; i++) f[i] = f[i-1] + f[i-2]; return f[n];}//使用递归 f(n) = f(n-1) + f(n-2)int fun3(int n){ if (n <= 1) return n; return fun1(n-1) + fun1(n-2);}//fun3()在递归调用过程中产生大量冗余 很多f(n)会计算多次 改进如下int additiveSequence(int n, int t0, int t1){ if (n == 0) return t0; if (n == 1) return t1; return additiveSequence(n-1, t1, t0 + t1);}int fun4(int n){ return additiveSequence(n, 0, 1);}//将结果缓存,避免重复的递归int f[30];int fun5(int n){ if (n == 0) return f[0] = 0; else if (n == 1) return f[1] = 1; else { f[n] = fun(n-1) + fun(n-2); return f[n]; }}参考:《程序设计抽象思想》
0 0
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- python qrcode 库的使用
- HTTP详解
- $.ajax和java后台实现用户登录的功能
- redis异常解决:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
- iOS开发-基础:Objective-c单例模式的正确写法
- 斐波那契数列
- 内核机制之互斥与同步
- java 解析没有根节点的类xml文件
- question_014-JAVA之Map
- 编程珠玑 5.10调试
- htonl() htons()及inet_ntoa() inet_addr()的用法
- iOS 蓝牙 4.0 开发
- GIF 4.0+版本sig生成方法分享
- NavigationDrawer和NavigationView-Android M新控件