day 17 初始递归
递归函数
了解什么是递归 : 在函数中调用自身函数
最大递归深度默认是997/998 —— 是python从内存角度出发做的限制
能看懂递归
能知道递归的应用场景
初识递归 ——
算法 —— 二分查找算法
三级菜单 —— 递归实现 手动设置递归深度
import sys sys.setrecursionlimit(100000)
n = 0 def story():
global n
n += 1
print(n)
story() Recursion : 递归
RecursionError: maximum recursion depth exceeded while calling a Python object
递归错误,超出了递归的最大深度
story() 如果递归次数过多,就不适合使用递归来解决问题
递归的缺点: 占内存;
递归的优点: 让代码变简单 递归的用处:通过多个结果来得到最终答案,这其中的运算步骤都是一致的
递:从最终答案开始一直往下遍历到给出的条件
归:从已知条件向上进行多次重复运算,直到得到最终条件
范例:
# alex 多大? n = 1 age(1)=age(2)+2 = age(n+1)+2
# alex 比 egon大两岁
# egon 多大? n = 2 age(2)=age(3)+2 = age(n+1)+2
# egon比 wusir大两岁
# wusir 多大? n = 3 age(3)=age(4)+2 = age(n+1)+2
# wusir 比 king大两岁
# king 多大?
# king 40 岁 n = 4 age(4)= 40 # n = 4 age(4) = 40
# n < 4 age(n) = age(n-1)+2 def age(n):
if n == 4:
return 40
elif 0 < n < 4:
return age(n + 1) + 2 print(age(1))
day 17 初始递归的更多相关文章
- 【原创】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题
[原创-转载请说明出处] 博主最近在虚拟机中搭建Maven私服,遇到了一个关键问题就是nexus 3.17版本后初始密码不是admin/admin123. 对于nexus不熟悉的我弄了很长时间!!!心 ...
- Java8之旅(七) - 函数式备忘录模式优化递归
前言 在上一篇开始Java8之旅(六) -- 使用lambda实现Java的尾递归中,我们利用了函数的懒加载机制实现了栈帧的复用,成功的实现了Java版本的尾递归,然而尾递归的使用有一个重要的条件就是 ...
- Java8函数之旅 (七) - 函数式备忘录模式优化递归
前言 在上一篇开始Java8之旅(六) -- 使用lambda实现Java的尾递归中,我们利用了函数的懒加载机制实现了栈帧的复用,成功的实现了Java版本的尾递归,然而尾递归的使用有一个重要的条件就是 ...
- java重写equals和hashCode方法
一.重写equals方法 如果不重写equals,那么比较的将是对象的引用是否指向同一块内存地址,重写之后目的是为了比较两个对象的value值是否相等. 利用equals比较八大包装对象(如int,f ...
- 基于Angularjs+jasmine+karma的测试驱动开发(TDD)实例
简介(摘自baidu) 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然 ...
- C++11学习笔记
C++11 1.long long新类型 2.列表初始化 int t=0; int t={0}; int t(0); int t{0}; 注意:如果我们使用列表初始化有丢失信息的风险,则编译器报错 l ...
- Template_17_metaprogram
1,模板实例化机制是一种基本的递归语言机制,可以用于在编译期执行复杂计算.2,枚举值和静态常量在原来的C++编译器中,在类声明的内部,枚举值是声明"真常值"(常量表达式)的唯一方法 ...
- Java的哪些事
Java的哪些事--------------------------------------------------Java学习分2个方面: Java语法与Java类库 Java: A simple, ...
- QT文件夹定位(网友提供)
#ifndef FOLDERFINDER_H #define FOLDERFINDER_H#include <QDir>class FolderFinder{public: QStr ...
随机推荐
- nmap详解之基础示例
扫描主机target.example.com的所有TCP端口 nmap -v target.example.com 发起对target.example.com所在网络上的所有255个IP地址的秘密SY ...
- jsp路径
访问静态资源的时候${pageContext.request.Context}没有作用,在浏览器F12调试的时候发现,路径并没有被解释为项目的根路径,而是没有解释出来,还是${pageContext. ...
- (.text+0x18): undefined reference to `main'
在将VS中的程序移植到ubuntu中出现的一个问题,主要原因是在vs中默认的主函数写成int _tmain(), 而在gcc编译时要找的是int main().改过来就可以了.
- linux下面误删root里面的文件夹 恢复方法
手残吧 /root/ 里面的文件删除了. .mkdir /root cp -a /etc/skel/.[!.]* /root 主要是吧 /etc/skel/里面的文件拷贝回去就行了~~~哈.. 转自: ...
- vue初始化、数据处理、组件传参、路由传参、全局定义CSS与JS、组件生命周期
目录 项目初始化 组件数据局部化处理 子组件 父组件 路由逻辑跳转 案例 组件传参 父传子 子组件 父组件 子传父 子组件 父组件 组件的生命周期钩子 路由传参 第一种 配置:router/index ...
- Codeforces_849
A.只要考虑分成一个串的情况就可以了. #include<bits/stdc++.h> using namespace std; ]; int main() { ios::sync_wit ...
- Codeforces_446_B
http://codeforces.com/problemset/problem/446/B 分别将每行的和与每列的和存入优先队列,计算操作n次的最大和,保存每一次结果. 枚举行和列操作的次数,注意要 ...
- vs2017项目上传到github
如果要把项目提交到一个厂库里面,需要建个git存储库,比如选择新建git库选择VSVIEW文件夹,以后在这个文件夹下的项目,提交时都会提交到VSVIEW这个github仓库 选择的文件夹不在git文件 ...
- sqlserver partitition and partition table --- partition show
I can not believe that I had done this about two years Now we know there is totally different betwee ...
- vue文件引入全局样式导致样式重复
通常项目中src下的子目录都会有一个style文件夹,专门用来存放全局的样式文件. 这个style文件夹下,一般有reset.css.var.scss.mixin.scss.class.scss.in ...