2014木瓜移动校园招聘笔试题之递归优化题解答
来源:互联网 发布:unity3d 头发飘动 编辑:程序博客网 时间:2024/06/11 20:12
在网上看到的,这里给出一个可行解。
原题
代码的优化,给出下一段代码,请做出最好的优化
int f(int n) { if(n<=4) return n*n; else { return f(n-4)*f(n-1) -f(n-2)*f(n-2); }}
解答
无非是将递归转化为循环,防止重复计算中间值,跟斐波那契数列f(n)=f(n-1)+f(n-2)
一样,解决方式也一样,就是利用几个临时变量保存中间值,然后每次循环都更新临时变量即可。过程没啥好说的,直接给出代码即可。
int f2(int n) { int first = 1; int second = 4; int third = 9; int fourth = 16; if(n<=4) return n*n; for(int i = 5; i <= n; ++i) { int tmp = fourth * first - third * third; first = second; second = third; third = fourth; fourth = tmp; } return fourth;}
2 0
- 2014木瓜移动校园招聘笔试题之递归优化题解答
- 2014木瓜移动校园招聘笔试题
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 百度2014研发类校园招聘笔试题解答
- 中兴移动2014届校园招聘C++笔试题
- 2014校园招聘笔试题
- 求解线性同余方程组
- 数据库的分页查询
- 经典背包问题 01背包+完全背包+多重背包
- 排列组合算法
- 【WEB基础】②js控制表单提交
- 2014木瓜移动校园招聘笔试题之递归优化题解答
- 友元关系
- 递归打印
- 二哥让他
- 用Maven编译Apache flume-ng 1.5.0源码及问题解决
- 发青儿 二
- Execl中函数使用总结
- mysql 免安装版配置
- 一个django问题的修改,jpeg encode什么的