2016/7/9重学了一波递归和递推
来源:互联网 发布:php程序员职业规划面试 编辑:程序博客网 时间:2024/05/31 19:19
#include <iostream>#include <cstdio>using namespace std;/**猴子吃桃问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?*///我的:(10~1)//递归int fun(int d){ if (d == 10) { return 1; } return 2*(fun(d+1) + 1);}int main(){ int d; scanf("%d", &d); printf("%d\n", fun(d)/2+1); return 0;}//非递归int main(){ int a[15]; a[10] = 1; for (int i=10; i>=1; i--) { a[i-1] = (a[i] + 1) * 2; } printf("%d\n", a[0]/2-1); return 0;}//人家的:(1~10)//递归int fun(int n){ cout << "f(" << n << ")压栈" << endl; if (n == 1) { cout << "此时函数达到最大深度" << endl; // [这里]函数栈最大深度为o(n); cout << "f(" << n << ")弹栈" << endl; return 1; } int a = fun(n-1)*2+2; cout << "f(" << n << ")弹栈" << endl; return a;}int main(){ int n = 10; cout << fun(n) << endl; return 0;}//非递归int main(){ int a = 1; for (i=1; i<=10; i--) { a = (a + 1) * 2; } printf("%d\n", a); return 0;}/*空间复杂度Space(N):Space(N) = Heap(N) + Stack(N);忽略低次项、系数之后,也记作o(N);Heap(N)表示额外申请堆内存空间的大小,Stack(N)表示函数栈的最大深度;当Stack(N)很大的时候慎用递归,当Stack(N)增长率很快(超过NlogN)的时候,慎用递归!*/
0 0
- 2016/7/9重学了一波递归和递推
- 递推和递归一
- 递归和递推
- 递推和递归
- 递推和递归
- 递推和递归--骨牌
- 7、递归思想和迭代思想(递推思想)
- 子程序的嵌套、递归和递推
- 递推和递归--RPG难题
- 递推和递归Number Sequence
- 对递推和递归的理解
- 09:函数、递归和递推
- PHP 递归和递推思想
- 学了一个递归
- 重学C++ (一)
- 递推与递归
- 递推与递归
- hdu递归,递推
- 大数相加(hdu 1002)
- 正确创建AVD,告别功能不全的Genymotion
- 字符串替换
- 清除缓存功能的添加
- [Material Design开发系列1]AppCompat V21:将MD兼容到5.0之前的设备
- 2016/7/9重学了一波递归和递推
- C++引用原理剖析
- linux信号--阻塞信号
- gcc的参数 -I和-L 的用法
- 2016版---北京赛车pk10平台出租
- LeetCode 82,83 Remove Duplicates from Sorted List I, II解析
- 关于proguard配置文件的一个笨办法,一次性排除大部分外部依赖
- 【NOIP2010提高组】关押罪犯
- ACM入门练习与递推小结