算法

迭代与递归(基础版)

2020-03-10  本文已影响0人  拼了老命在学习

问题:

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

上一篇下一篇

猜你喜欢

热点阅读