过程简述(原理不多赘述,网上很多)
(1)大数除小数 ①余数为0,除数即最大公约数
②余数不为0,执行(2)
(2)余数不为0,上一轮的除数作为被除数,上一轮的余数作为除数。
再次判断余数 ①余数为0,除数为最大公约数
②余数不为0,执行(2)
(3)直至余数为0,最后一个除数为最大公约数。
例如:
14 10
14/10=1.....4
10/4= 2.....2 //上一轮的除数作为被除数,上一轮的余数作为除数
4/2= 2.....0 //直至余数为0,最后一个除数为最大公约数
核心代码解释
int x=1; //余数,初值为1 while ( x ! = 0) //①若a<b,无需颠倒,商0,余数即除数本身 下有例子 ②余数为0,即跳出循环 { x=a%b; //余数赋值x a=b; //上一轮的除数作为被除数 b=x; //上一轮的余数作为除数 }
自动颠倒例子
10%14=10;
x=10;
a=14;
b=10;
此时x!=0,继续执行while循环
0.0分
0 人评分