迭代与递归(基础版)

问题:

问题.png

1.迭代

def fab(n):
    n1 = 1
    n2 = 1
    n3 = 1
    if n < 1:
        print("输入有误\n")
        return -1

    while (n-2) > 0:
        n3 = n2 + n1
        n1 = n2
        n2 = n3
        n -= 1
    return n3
n = int(input("输入一个整数\n"))
num1 = fab(n)
if num1 != -1:
    print(num1)

2.递归

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)
n = int(input("请输入一个整数\n"))
result = fab(n)
if result != -1:
    print("生了%d对兔子" % result)

通过实验可知,迭代运行速度比递归要快

用递归实现阶乘运算

def JieCheng(num):
    if num == 1:
        return 1
    else:
        return num * JieCheng(num-1)
num = int(input("请输入一个数\n"))
result = JieCheng(num)
print("%d! = %d" %(num,result))

迭代和递归的区别

迭代与递归的区别在于:递归是由自己延伸出去的,而迭代是得到新的结果并替代了自己。

1.递归是指函数、过程、子程序在运行过程序中直接或间接调用自身而产生的重入现像。在计算机编程里,递归指的是一个过程:函数不断引用自身,直到引用的对象已知。

2.迭代的含义是:重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次迭代,而每一次迭代得到的结果会作为下一次迭代的初始值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 栈与递归 栈还有一个重要应用是在程序设计语言中实现递归。一个直接调用自己或通过一系列的调用语句间接的调用自己的函数...
    Mr_Bluyee阅读 3,217评论 0 1
  • 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大奖:点击这里领取 在...
    HetfieldJoe阅读 1,836评论 0 14
  • 对于离别, 其实我只想要一个拥抱, 可以好好的话别, 然后认真凝视,把你记牢。 但是成人的世界充满欢笑, 离别都觥...
    彧婠九尾猫阅读 204评论 1 3
  • 我喜欢叫自己姑娘,好像称谓本身就有梦想和光芒。我终于变成二十岁的姑娘,从孩子一下长成大人的模样。不能肆无忌惮地撒娇...
    左木以南阅读 460评论 3 6
  • 4月21日,晴 今天又是抽到大阿尔卡纳牌【愚人】 读牌:零号牌,愚人,牌上的二逼青年穿着美丽鲜艳的花衣裳,肩上扛着...
    LULU鲁鲁阅读 234评论 0 2