迭代与递归(基础版)
2020-03-10 本文已影响0人
拼了老命在学习
问题:
问题.png1.迭代
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.迭代的含义是:重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次迭代,而每一次迭代得到的结果会作为下一次迭代的初始值