迭代法:
迭代法是用计算机解决问题的一种基本方法,它让计算机对一组指令或一定步骤进行重复执行,在每次执行这组指令或这些步骤是都从变量的原值推出他的一个新值,用迭代法解决问题,要考虑迭代的初值、迭代的过程、迭代的结束或迭代的次数。(在我看来,简单地说就是运算过程中的变量的不断交替)
典型例题:辗转相除法求 a、b的最大公约数可以用迭代法。 其中
(1)迭代的初值:被除数u=a,除数v=b。
(2)迭代的过程: r=u%v , u=v , v=r;
被除数、除数、余数的值辗转更新
代码实现:
#include<stdio.h>
int main()
{
//求最大公约数以此来复习一下迭代法!
//求最大公约数用的是辗转相除法,eg 123%23=8 23%8=7 7%8=7 8%7=1 7%1=0 所以最大公约数是1
int a,b;
scanf("%d %d",&a,&b);//需要求最大公约数的俩数
int u=a,v=b,s=1;//被除数和除数赋值
while(s!=0)
{
s=u%v;
u=v;
v=s;
}
printf("%d",u);
return 0;
}
▲在确定输出值时要自己推演一下,比如此题,看起来是输出被除数v的值,但是在最后一边循环中v会被赋予s的值,即0,此时u的值才是真正要的最大公约数
因此在输出的时候要注意最终的值
▲循环条件中所用的变量要记得赋初值