逍遥学能 2016-09-22 10:22
算法案例:
主要有辗转相除法、更相减损术、秦九韶算法、k进制化十进制的算法。
辗转相除的定义:
所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。
更相减损术的定义:
就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数。
比较辗转相除法与更相减损术的区别:
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到。
辗转相除法的一个程序算法的步骤:
第一步:输入两个正整数m,n(m>n).
第二步:计算m除以n所得的余数r.
第三步:m=n,n=r.
第四步:若r=0,则m,n的最大公约数等于m;否则转到第二步.第五步:输出最大公约数m.
更相减勋术的一个程序算法步骤:
第一步:输入两个正整数a,b(a>b);
第二步:若a不等于b,则执行第三步;否则转到第五步;
第三步:把a-b的差赋予r;
第四步:如果b>r,那么把b赋给a,把r赋给b;否则把r赋给a,执行第二步;
第五步:输出最大公约数b.