递归函数 day17
一 递归函数 n = 1 金老板 38+2 =40
n = 2 alex n+2= 金老板 36+2 = 38
n = 3 wusir n+2 = alex wusir 36 def age(n): #n = 2
if n == 3:
return 36
else:
return age(n+1)+2 jin_age = age(1) # 40
print(jin_age) 求阶乘 _ 递归函数
5! = 5*4*3*2*1 # 5 * 4! fn(5)
4! = 4*3*2*1 # 4 * 3! fn(4)
3 * 2! fn(3)
2 *1! fn(2)
1 fn(1) = 1
def fn(n): #n=5
if n == 1:return 1
return fn(n-1) * n
print(fn(5)) 二 算法
算法 计算的方法
99*99 = 99*(100-1) = 99*100-99*1 = 99*100-99 = 9900-99 = 9801 _ 人计算的方法
99 * 99
计算机的思维和人脑的思维是不同的
算法很难
计算机领域的 算法 是计算机认为简便的算法 查找算法
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
66
方法一: 循环 # 5000000 4999999
方法二: l.index(66) #最正确的方法 算法
从有序的列表中查找值的位置
[2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
41 < 66
[42,43,55,56,66,67,69,72,76,82,83,88]
66 < 67
[42,43,55,56,66]
55 < 66
[56,66]
56 < 66
[66]
66 == 66 递归 : 解决一个问题,问题的答案,依托于另一个问题,另外的这个问题和要解决的问题是基本一致的
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
def find(l,aim):
mid = len(l)//2
if l[mid] > aim:
new_l = l[:mid]
find(new_l,aim)
elif l[mid] < aim:
new_l = l[mid+1:]
find(new_l, aim)
elif l[mid] == aim:
print('找到了:',mid,aim,l[mid])
find(l,66) def find(l,aim,start=0,end=None):
if end == None:end = len(l)-1
if start <= end:
mid = (end - start) // 2 + start
if l[mid] > aim:
return find(l,aim,start=start,end=mid-1)
elif l[mid] < aim:
return find(l,aim,start=mid+1,end=end)
elif l[mid] == aim:
return mid
else:
return None
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
print('ret :',find(l,18))
1 如果要查找的值不在列表中
2 参数的简化
3 返回值的问题 递归函数完成 : 三级菜单 真题附加题 斐波那契数列fib(20)
l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88]
def find(l,aim):
mid = len(l)//2
if l[mid] > aim:
new_l = l[:mid]
find(new_l,aim)
elif l[mid] < aim:
new_l = l[mid+1:]
find(new_l, aim)
elif l[mid] == aim:
print('找到了:',mid,aim,l[mid])
find(l,66) l=[]
def con(n):
if n==1:
return 1
elif n==2:
return 1
else:
return
f() def f(n):
if n==1:
return 1
elif n==2:
return 1
else :
return f(n-1)+f(n-2)
f(4)
print(f(4)) def f(n):
if x<n:
a=1
b=1
con=0
a+b=b+a
elif:
x=n
递归函数 day17的更多相关文章
- day17递归函数(二分法查找)
递归函数: 如果函数包含了对其自身的调用,该函数就是递归的: example 1:二分法查找的实现: def find_recursion(l,aim,start=0,end=None): #end不 ...
- day17.初识递归函数
在一个函数调用这个函数本身就是递归函数 递归函数默认深度最大997 n = 0 def func(): global n n += 1 print('hello,world') print(n) fu ...
- day17:递归函数
1,递归函数是一个函数体系,非常的难 2,练习题一 # 3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb name=['alex','wupeiqi','yuanhao',' ...
- javascript中的递归函数
正常的递归函数如下: function factorial(num){ ){ ; }else{ ); } } 这个函数表面看起来还ok,但如果我们执行下面代码就会出错. var jenny = fac ...
- JS函数相关及递归函数的使用
JS函数相关及递归函数的使用 通用js程序: function 函数名(参数列表) { 函数体 } 可使用alert()输出,也可用return返回值. alert与return区别: functio ...
- python3--函数(函数,全局变量和局部变量,递归函数)
1.1函数 1.1.1什么是函数 函数就是程序实现模块化的基本单元,一般实现某一功能的集合.函数名:就相当于是程序代码集合的名称参数:就是函数运算时需要参与运算的值被称作为参数函数体:程序的某个功能, ...
- Python之路 day3 递归函数
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa """ 在函数内部,可以调用其他函数.如果一个函数在内 ...
- Python3学习(二)-递归函数、高级特性、切片
##import sys ##sys.setrecursionlimit(1000) ###关键字参数(**关键字参数名) ###与可变参数不同的是,关键字参数可以在调用函数时,传入带有参数名的参数, ...
- 浅谈-js递归函数
所谓的递归函数就是在函数体内调用本函数.使用递归函数一定要注意,处理不当就会进入死循环.递归函数只有在特定的情况下使用 ,比如阶乘问题 下面我们就做一个10以内的阶乘试试看吧: [Ctrl+A 全选 ...
随机推荐
- openvas开放式漏洞评估系统
OpenVAS是开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器.其核心部件是一个服务器,包括一套网络漏洞测试程序,可以检测远程系统和应用程序中的安全问题. 用户需要一种自动测试的方法, ...
- Node稳定性的研究心得
目前大部分Web服务器,如Apache,都使用多线程的方式响应多用户请求,即一个线程服务一个用户请求.这种模式其中一个好处是,当某个请求的线程上抛出的异常没被捕获,只会影响当前这个线程,不会影响其他请 ...
- [PHP]更新中间关联表数据的两种思路
---------------------------------------------------------------------------------------------------- ...
- 简单实现"回车!=提交"(去除表单的回车即提交)
-------------------------------------------------------------------------------------------------- 实 ...
- js高级-变量内存分析
var a = 9, b, c={age:9}, d; b = a; b = 19; console.log(a) console.log(b) d = c; d.age = 22; console ...
- 安装 gradle
Gradle是一种现在很流程的构建工具,目前基本和Maven平分天下,而且大有取而代之的趋势.这篇教程教大家怎么在linux上安装Gradle. 一.获得一台linux服务器 要在linux下安装gi ...
- 附加任务:团队作业7 Alpha冲刺
附加任务:团队作业7 Alpha冲刺 附加任务要求参考东北师范大学陈志勇老师博客:https://edu.cnblogs.com/campus/nenu/2016SE_NENU/homework/19 ...
- SAP 000 客户端初始登录
Solution 在SAP系统DB中删除账号SAP*,SAP系统会自动创建SAP*这个账号,然后初始密码是“PASS”,这样就获得Client 000 SAP*账号. Step by Step 以Or ...
- sass 的安装 http://blog.csdn.net/weixin_38362146/article/details/78035971?locationNum=10&fps=1
http://blog.csdn.net/weixin_38362146/article/details/78035971?locationNum=10&fps=1
- Typechecking With PropTypes
[Typechecking With PropTypes] 1.props类型检查 React has some built-in typechecking abilities. To run typ ...