2018-2019学年人教B版必修三 算法案例 学案
2018-2019学年人教B版必修三    算法案例  学案第2页

 INPUT "m=";m

INPUT "n=";n

IF m

x=m

m=n

n=x

END IF

r=m MOD n

WHILE r<>0

r=m MOD n

m=n

n=r

WEND

PRINT n

END

要点诠释:

辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m表示,把较小的数用变量n表示,这样式子就是一个反复执行的步骤,因此可以用循环结构实现算法.

要点二:更相减损术

我国早期也有解决求最大公约数问题的算法,就是更相减损术.

更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.

翻译出来为:

第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.

第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.

理论依据:

由,得与有相同的公约数

更相减损术一般算法:

第一步,输入两个正整数;

第二步,如果,则执行,否则转到;

第三步,将的值赋予;

第四步,若,则把赋予,把赋予,否则把赋予,重新执行;

第五步,输出最大公约数.

程序:

INPUT "a=",a

INPUT "b=",b

WHILE a<>b

IF a>=b

a=a-b;