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

递归函数

例如

def f1():       f1返回123

  return 123

def f2():      执行f1函数,并返回f1函数的返回值123

  ret=f1()

  return ret

def f3():      执行f2函数,并打印f2函数的返回值123

  ret=f2()

  print(ret)

f3()    

输出:

123

 

思考题:算出1x2x3x........x10的积

方法一 利用递归函数

def func(n,m):            这里需要传两个值n代表计算n*(n-1).......*1,m代表乘积的初始值

  if n > 0:

    m=m*n

    n -=1

    return func(n,m)          通过返回函数本身来达到递归的效果

  else:

    print(m)

 

func(10,1)        计算10以内的乘积即n=10,乘积m初始值位1

输出:

3628800

 

方法二:我们可以理解递归函数相当于一个while循环。同样我们可以利用循环做出10以内的乘积

def func(n,m):

  while n > 0:

    m=n*m

    n -=1

  else:

    print(m)

func(10,1)

输出:

3628800

 

方法三:

1 def func(num):
2     if num==1:
3         return 1
4     return num * func(num-1)
5 print(func(10))

 

转载于:https://www.cnblogs.com/RomanticYori/p/5951062.html

相关文章:

  • Composer : php依赖管理工具
  • 数据库合并数据sql
  • PHP简单实例
  • 进程和线程的区别
  • java内存模型优化建议
  • node.js学习笔记--day1
  • Java 简单算法--排序
  • mysql视图学习总结
  • Ionic2构建iOS应用上传总结
  • vim 命令的一些用法
  • JS闭包
  • 【服务器环境搭建-Centos】jdk的安装
  • Linux 性能基准测试
  • 那些年我们学Flask-SQLAlchemy,实现数据库操作,分页等功能
  • Java设计模式—建造者模式
  • 2018一半小结一波
  • Android交互
  • Android框架之Volley
  • JAVA_NIO系列——Channel和Buffer详解
  • Javascript 原型链
  • Lsb图片隐写
  • nodejs:开发并发布一个nodejs包
  • Odoo domain写法及运用
  • Vue UI框架库开发介绍
  • vue:响应原理
  • vue数据传递--我有特殊的实现技巧
  • 基于游标的分页接口实现
  • 两列自适应布局方案整理
  • 你真的知道 == 和 equals 的区别吗?
  • 巧用 TypeScript (一)
  • 如何解决微信端直接跳WAP端
  • 实习面试笔记
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • elasticsearch-head插件安装
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #define
  • #include
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)计算机毕业设计ssm电影分享网站
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)elasticsearch 源码之启动流程分析
  • .net 4.0发布后不能正常显示图片问题
  • .NET CORE Aws S3 使用
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .Net语言中的StringBuilder:入门到精通
  • ::
  • @property @synthesize @dynamic 及相关属性作用探究
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [1]-基于图搜索的路径规划基础
  • [51nod1610]路径计数
  • [Android] 240204批量生成联系人,短信,通话记录的APK
  • [C/C++]关于C++11中的std::move和std::forward