【建站服务】靖边爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广-域名申请
作者: 风兰 . 阅读量: 8 . 发表时间:2022-09-21 05:31:05
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
靖边爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广

del f_max[fmlen]
else:
m=f_max[fmlen-1]+f_max[fmlen]
f_max.append(m)
Fsqe_Max(fmx)
lens=int(input('Fsqe_Len 输入最大个数:'))
maxs=int(input('Fsqe_Max 输入最大值:'))
if __name__ == '__main__':
Fsqe_Len(lens)
Fsqe_Max(maxs)
print(f_len)
print(f_max)
JasonLiu
JasonLiu
wsl***un1@163.com
4年前 (2018-07-03)
Quan
460***939@qq.com
20
# 取斐波那契数列第 n 项也可不必用递归
# 非递归算法求解第n项数斐波那契数列
a, b, i = 0, 1, 0
result = [ ]
n = int(input('输入一个大于 0 的整数: '))
while i < n:
result.append(b)
a, b = b, a+b
i += 1
print(result[n-1])
Quan
Quan
460***939@qq.com
4年前 (2018-12-01)
Tikiten
176***2852@qq.com
95
关于递归和两个变量计算斐波那契:
import time
#计算递归斐波那契时间消耗
n=int(input('请输入一个整数:'))
start = time.time()
def fab(n):
if n<1:
print('输入有误!')
return -1
if n==1 or n==2:
return 1
else:
return fab(n-1)+fab(n-2)
print(fab(n))
end = time.time()
print("运行时间:%.2f秒"%(end-start))
#计算两个变量时间消耗
start = time.time()
a, b = 0, 1
cn = 1
while cn < n:
a, b = b, a+b
cn += 1
print(b)
end = time.time()
print("运行时间:%.2f秒"%(end-start))
结果如下:
请输入一个整数:35
9227465
运行时间:3.37秒
9227465
运行时间:0.00秒
大于 30 以后两种方法的时间对比就很明显了,所以教程的方法还是省时省空间的。
Tikiten
Tikiten
176***2852@qq.com
3年前 (2019-07-10)
我信罪得赦免
201***9962@qq.com
153
接力关于递归和循环,这里采用尾递归的方法,不需要保存额外的栈帧,既保证了运行效率,又具有可读性。
#尾递归算法实现
import time
n=int(input('请输入一个整数:'))
a=0
b=1
start = time.time()
def F(n,a,b):
if n==0:
return a
return F(n-1,b,a+b)
print(F(n,a,b))
end = time.time()
print("运行时间:%.2f秒"%(end-start))
测试结果为:
请输入一个整数:35
9227465
运行时间:0.00秒
我信罪得赦免
我信罪得赦免
201***9962@qq.com
3年前 (2019-07-27)
CSBigCaptain
Che***uaigeDDZ@outlook.com
25
另外,如果要让作者给的程序更方便,可以在前面使用 input 函数来限定函数的最大值:
maxx = int(input('斐波那契数列的最大值(忽略第一个数字0
靖边爱采购会员/58同城会员账户/百度竞价开户/百家号注册运营/推广公司网站-网站营销全网推广
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站



print() sep 参数使用:
cnjc1855
133***31855@189.cn
hackmeng
715***8@qq.com
看了一下,目前还没有把递归单独拿出来讲解
下面使用递归方式求斐波纳契数列
其实递归就是函数内部调用自身。
使用 print(fab(num)) #num 是一个数字,可用递归方式求输入数字的斐波纳契结果
def fab(n): if n<1: print('输入有误!') return -1 if n==1 or n==2: return 1 else: return fab(n-1)+fab(n-2)hackmeng
715***8@qq.com
月夜面尊
Han***Coding@foxmail.com
楼上说用递归的,单纯说递归还好,其实递归在很大程度上牺牲了空间换取了可读性。每次调用递归函数的时候都会创建一个函数栈,如果递归深度过大,则会造成溢出状况。原文中使用a,b = b,a+b 方法求斐波那契数列,占用空间少,来回只有两个变量的空间占用,很方便。
月夜面尊
Han***Coding@foxmail.com
leviyb
lev***@163.com
楼上给出了求取斐波那契数列第n项的方法,利用列表可以将前20项输出.但是递归算法重复计算太多,基本计算到第40项就卡住了,太浪费资源,利用列表记录n-1项,可以很大程度上减少重复计算量.利用字典记录也可以实现相同运算.
n=int(input('请输入一个整数:'))def fab(n): if n<1: print('输入有误!') return -1 if n==1 or n==2: return 1 else: return fab(n-1)+fab(n-2)result=[]for i in range(1,n+1): result.append(fab(i))print(result)n=int(input('请输入一个整数:')) dic = {0:0,1:1}def fib(n): if n in dic: return dic[n] else: temp = fib(n-1)+fib(n-2) dic[n] = temp return tempfor i in range(n): print(fib(i+1),end=" " )leviyb
lev***@163.com
JasonLiu
wsl***un1@163.com
# r.pyimport sys,getopt#递归算法 填充斐波拉契数列x,y=0,1f_len,f_max=[],[]f_len.append(x);f_len.append(y)f_max.append(x);f_max.append(y)#按最大个数填充def Fsqe_Len(n): if len(f_len)<n: Fsqe_Len(n-1) m=f_len[n-1]+f_len[n-2] f_len.append(m) #按最大值填充def Fsqe_Max(fmx): fmlen=len(f_max)-1 if f_max[fmlen]>fmx: del f_max[fmlen] else: m=f_max[fmlen-1]+f_max[fmlen] f_max.append(m) Fsqe_Max(fmx) lens=int(input('Fsqe_Len 输入最大个数:'))maxs=int(input('Fsqe_Max 输入最大值:'))if __name__ == '__main__': Fsqe_Len(lens) Fsqe_Max(maxs) print(f_len) print(f_max)JasonLiu
wsl***un1@163.com
Quan
460***939@qq.com