以最经典的等差求和为例吧,求和1+2+3+4+5+6+....

 def sum_numbers(num):# 1.如果是1,直接返回1 -- 出口if num == 1:return 1# 2.如果不是1,重复执行累加并返回结果return num + sum_numbers(num - 1)sum_result = sum_numbers(5)print(sum_result)

递归. 在数学与计算科学种,指的是函数的定义中使用函数自身的方法

递归就是在过程或函数里调用自身
必须有一个明确的递归结束条件,称为递归出口
不要递归出口,避免函数无限调用

基本步骤:
1.初始化算法,种子值
2.基线条件相匹配
3.使用更小的或更简单的子问题来重新定义答案
4.对子问题运行算法
5.将结果并入答案的表达式
6.返回结果

解决三类问题:
(1)数据的定义是按递归定义的 (Fibonacci函数)
 (2)问题解法按递归算法实现 (回溯)
 (3) 数据的结构形式是按递归定义的。(树的遍历,图的搜索)

典型的算法:
    阶乘
    n! = 1x2 x3 x...xn
    n! = (n-1)! x n
    n >= 1, 并且 0!=1

 #阶乘def factorial(n):result = 1for i in range(2, n + 1):result *= ireturn resultf = factorial(5)print(f)# 递归
def factorial(n):if n == 0 or n == 1:return 1else:return n * factorial(n - 1)factorial(998)

了解递归算法,等差求和,阶乘相关推荐

  1. 2058(等差求和)

    HDU 2058 The sum problem 等差求和公式: Sn=(a1+aN)*n/2     =(a1+a1+d(n-1))*n/2     =a1*n+d(n-1)*n/2; 因为此处公差 ...

  2. 序列求和 直接print(sum(range(n+1)))最后会有一两个例子超时,可以选用等差求和

    资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 求1+2+3+-+n的值. 输入格式 输入包括一个整数n. 输出 ...

  3. python的基础算法实现(等差求和,阶乘)

    这里记录的代码均为核心,不带交互,有些不考虑无效输入 力求最省资源,用最快捷的实现方式 等差数列求和 #等差数列求和 n*(a1+an)/2 x1 = 1 d = 3 n = 100 x100 = x ...

  4. Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)

    题目链接:http://codeforces.com/contest/1009/problem/C 解题心得: 题意就是一个初始全为0长度为n的数列,m此操作,每次给你两个数x.d,你需要在数列中选一 ...

  5. [M数学] lc1759. 统计同构子字符串的数目(数学+等差求和)

    文章目录 1. 题目来源 2. 题目解析 1. 题目来源 链接:1759. 统计同构子字符串的数目 2. 题目解析 分析题目,连续字符串对答案的贡献实际上是 等差数列求和 即可,采用双指针求出连续字符 ...

  6. HDU 4407 Sum(容斥+等差求和)

    题目大意:给n个数,1-n.然后有m次操作,分别是求(x,y)中与p互质的和:将第x个数替换成c. 思路:一开始觉得区间操作往线段树上想,但是要存的东西太多,没有办法实现. 后面其实仔细一想跟前面几道 ...

  7. 密码*** ,continue,等差求和

    import getpass# user = input("username:")# password = getpass.getpass(prompt="passwor ...

  8. hdu 1597 find the nth digit(等差求和+二分)

    find the nth digit Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  9. 等差求和-公式+大数long long(蓝桥)

    问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3+...+n的值. 样例输入 4 样例输出 10 样例输入 100 说明:有一 ...

最新文章

  1. ios 圆形旋转菜单_iOS实现滑动弧形菜单的思路与方法
  2. sql server 游标的使用
  3. python的文件类型
  4. c拆分字符串,并按照指定格式存入结构体数组
  5. python开发环境spyder_spyder python 2.7-spyder(Python开发环境)下载 v2.1.10官方版--pc6下载站...
  6. C++/C--vector初始化与赋值【转载】
  7. 云计算:技术疲劳玩概念 伪云项目横行于世
  8. iOS开发之UIApplication
  9. 谷歌称已实现量子霸权;iOS 捷径功能被诉侵权;Chrome 78 Beta 发布 | 极客头条
  10. spring-session(一)揭秘续篇
  11. 怪物猎人online 日服 注册流程(原创)
  12. 计算机软件研究方法与技术路线,项目的研究方法与技术路线
  13. easyui设置html样式,easyui checkbox
  14. HTML5分级标题,HTML5与CSS3基础教程:创建分级标题_html/css_WEB-ITnose
  15. web 页面 常用分辨率(PC 移动端)
  16. 大数据处理问题及解决方法
  17. java native方法及JNI实例
  18. 【文本生成】评价指标:事实一致性Evaluating the Factual Consistency of Abstractive Text Summarization
  19. MAT的 thread overview 功能
  20. python问题中国五城市pm2.5_数据之路- 中国五城市PM2.5数据解读

热门文章

  1. xp/ win 7 如何设置电脑的保护色(绿豆沙色)以及Chrome浏览器
  2. 50个2010年最常用的网站推广方法
  3. Lava店铺音乐升级顾客体验
  4. LightOJ 1248 - Dice (III) 给一个质地均匀的n的骰子, 求投掷出所有点数至少一次的期望次数。(概率)...
  5. Qt 模仿QQ截图 动态吸附直线
  6. 2021 大促 AntMonitor 总结 - 云原生 Prometheus 监控实践
  7. 如何用AXURE制作简单的幻灯片播放
  8. 张宴:Tokyo Cabinet数据库及其扩展应用
  9. APB总线总结和VIP使用
  10. Linux防火墙设置放行、移除端口