1.定义:迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法,它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值,迭代法又分为精确迭代和近似迭代。比较典型的迭代法如“二分法”和"牛顿迭代法”属于近似迭代法。
例题1:求1+2+3+......+100的和
分析:要想求前100项的和,可以先求出前第一项的和,再求出前第二项的和,,,s变量中的值不断迭代,直到将第100个数加入到s变量中。
代码如下:文章来源:https://www.toymoban.com/news/detail-457977.html
s=0
for i in range(1,101):
s=s+i
print(s)
例题2:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1,即n!=1×2×3×…×(n-1)×n。现求正整数n的阶乘。
分析:
1.增加一个变量,存储结果,做好初始赋值。
2.使用计数循环结构for语句进行循环,使用range()函数生成一个数列,指定函数初始值为1,范围值为n+1,变化增量为1时可以省略。
3.在循环体内,进行迭代,并将计算结果作为下一次的初始值。
4.循环结束后,打印输出结果
代码如下:
num = int(input("请输入一个数字: "))
f=1 #赋初值
for i in range(1,num+1):
f = f*i
print("%d 的阶乘为 %d" % (num, f))
例题3:兔子数列(斐波那契数列)
有对兔子,从出生后的第3个月起每个月都生一对兔子。 小兔子长到第3个月后每个月又生一对兔子, 假设所有的兔子都不死,问30个月后的兔子总对数为多少?
代码如下:
def fibo(n):
f1=f2=1
for i in range(3,n+1):
f1,f2=f2,f1+f2
return f2
print(fibo(30))
例题4:输入两个数,求出这两个数的最大公约数。
代码如下:
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
m = max(num1, num2)
n = min(num1, num2)
r = m % n
while r != 0:
m = n
n = r
r = m % n
print('这两个数的最大公约数为:', n)
input("运行完毕,请按回车键退出...")
使用自定义函数改写:文章来源地址https://www.toymoban.com/news/detail-457977.html
def gcd(m,n):
r = m % n
while r != 0:
m = n
n = r
r = m % n
num1=int(input('请输入第一个正整数:'))
num2=int(input('请输入第二个正整数:'))
print('这两个数的最大公约数为:',gcd(num1,num2))
input("运行完毕,请按回车键退出...")
到了这里,关于python算法二:迭代法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!