当前位置: 首页 > news >正文

做网站一条龙五合一网站建设

做网站一条龙,五合一网站建设,河南企业网站推广,用sql2000做网站在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘 n! 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:fact(n) n! 1 * 2 * 3 * ... * (…

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n,用函数 fact(n)表示,可以看出:

fact(n) = n! = 1 * 2 * 3 * ... * (n-1) * n = (n-1)! * n = fact(n-1) * n

所以,fact(n)可以表示为 n * fact(n-1),只有n=1时需要特殊处理。

于是,fact(n)用递归的方式写出来就是:

def fact(n):

if n==1:

return 1

return n * fact(n - 1)

上面就是一个递归函数。可以试试:

>>> fact(1)

1

>>> fact(5)

120

>>> fact(100)

9332621544394415268169923885626670049071596826438162146859296389521759999322991560894146397615651

8286253697920827223758251185210916864000000000000000000000000L

如果我们计算fact(5),可以根据函数定义看到计算过程如下:

===> fact(5)

===> 5 * fact(4)

===> 5 * (4 * fact(3))

===> 5 * (4 * (3 * fact(2)))

===> 5 * (4 * (3 * (2 * fact(1))))

===> 5 * (4 * (3 * (2 * 1)))

===> 5 * (4 * (3 * 2))

===> 5 * (4 * 6)

===> 5 * 24

===> 120

递归函数的优点是定义简单,逻辑清晰。理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。

使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)。

任务

我们对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:

如果a只有一个圆盘,可以直接移动到c;

如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。

请编写一个函数,给定输入 n, a, b, c,打印出移动的步骤:

move(n, a, b, c)

例如,输入 move(2, 'A', 'B', 'C'),打印出:

A --> B

A --> C

B --> C

函数 move(n, a, b, c) 的定义是将 n 个圆盘从 a 借助 b 移动到 c。

参考代码:

def move(n, a, b, c):

if n ==1:

print a, '-->', c

return

move(n-1, a, c, b)

print a, '-->', c

move(n-1, b, a, c)

move(4, 'A', 'B', 'C')

A --> B

A --> C

B --> C

A --> B

C --> A

C --> B

A --> B

A --> C

B --> C

B --> A

C --> A

B --> C

A --> B

A --> C

B --> C

Debug 了解一下递归算法吧

http://www.lbrq.cn/news/2374741.html

相关文章:

  • 手机网站建设西安网络营销产品的首选产品
  • 中山网站建设公司哪个好深圳网络营销软件
  • 网站建设公司项目介绍百度收录的网站多久更新一次
  • 二环建设部网站微信scrm系统
  • 测试网站怎么做的山东seo网络推广
  • 软件定制公司官网seo方式包括
  • 公众号建网站seo需要懂代码吗
  • 制作网站网站站长工具seo推广 站长工具查询
  • 教做年糕博客网站深圳百度关键字优化
  • 怎么做网站的跳转最近的国际新闻
  • 重庆政府采购网站官网seo软文推广工具
  • 建设一个企业网站要多少钱廊坊百度推广seo
  • 优秀网站设计分析怎么做好推广
  • 网站做留言板b站推广入口2023破解版
  • 怎样做网站跳转下载百度推广app
  • 模板网站建设价位seo搜索优化邵阳
  • 门户网站直接登录系统企业培训机构排名
  • 有哪些公司做网站seo jsbapp9
  • wordpress获取评论广州网站优化服务
  • 三大门户网站哪家做的最好推广方法
  • 开源系统网站百度热搜关键词排行榜
  • 轩与巧之歌wordpress福州seo管理
  • 哪有培训网站开发seo外包公司一般费用是多少
  • 网站和管理系统的区别百度的人工客服
  • 衡水网页网站建设如何进行网站宣传推广
  • 网站建设准备工作总结最厉害的搜索引擎
  • 广东cba最新消息百度seo怎么样优化
  • 网站有些什么内容友情链接qq群
  • 四川微信网站建设百度广告联盟app
  • 网站模板去哪下载广告投放优化师
  • 智象科技赋能金融、证券行业 IT 运维
  • Clip微调系列:《MaPLe: Multi-modal Prompt Learning》
  • Java学习--JVM(2)
  • IDEA运行Tomcat一直提示端口被占用(也查不到该端口)
  • 快速掌握 Kafka:从核心概念到生产级部署指南
  • 如何在硬件中进行有效地调试