何为辗转相除法?主要应用于哪些类型的程序,变量请解释清楚,

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/20 16:28:26
何为辗转相除法?主要应用于哪些类型的程序,变量请解释清楚,
xn@_G,Y;z!Rې)5!w'H( J8RZ6wWx)R%|NxĶWl>:2 .һcF \r[ڟ~8uԯJWrF5RPץ@G5w߾~kT7x+{ʻB6BHPb?*qp@#5]msvOPSQ!)$d2/.I㌲ mAkz=1ш#tiĶݑQh_VIe*ސG}/$ c4Vebt8/ЎPf7(0dTH!B-{ =V6/Kdq%f:VX(<5T1̪KE%r j=/9@PP@֘$5&=ϵVXP]j]x`TjURs%3X ֧CHom l[-XO@['Y

何为辗转相除法?主要应用于哪些类型的程序,变量请解释清楚,
何为辗转相除法?
主要应用于哪些类型的程序,变量请解释清楚,

何为辗转相除法?主要应用于哪些类型的程序,变量请解释清楚,
以PASCAL语言来说
function tt(a,b:longint):longint
begin
r:=a mod b;
if r=0 then tt:=b else
begin
tt(b,r)
end;
end
其中a,b是要求最大公约数的两个原定值
上面的函数运用到了递归思想.以下是辗转相除的原理
设两数为a、b(b<a),求它们最大公约数(a、b)的步骤如下:用b除a,得a=bq.r 1(0≤r).若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b=r1q.r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止.其最后一个非零余数即为(a,b).