问题:给定两个正整数m,n,求他们的最大公因数。
算法:1)判断m,n的大小。如果m小于n,则交换m和n的值,确保m大于等于n。
2)以n除m,并令r为m除n所得的余数。若r等于0,则n为最大公因子,算法结束。
3)若r不等于0,则将n值赋值给m,将r值赋值给n,转到步骤2。
反思:假设m=5,n=7;若没有步骤1,则n除m的余数为5,即r=5,随后执行while循环时则会出现m=7,n=5;即执行了步骤1。也就是说步骤1不存在也可以达到目的,而步骤1的存在仅仅为了提高程序的运行效率。