过程简述(原理不多赘述,网上很多)
(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 人评分
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:623 |
C语言程序设计教程(第三版)课后习题9.1 (C++代码)浏览:610 |
矩阵转置 (C语言代码)浏览:1565 |
简单的a+b (C语言代码)浏览:676 |
C语言程序设计教程(第三版)课后习题9.2 (Java代码)浏览:696 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:900 |
WU-蓝桥杯算法提高VIP-交换Easy (C++代码)浏览:1186 |
简单的a+b (C语言代码)浏览:560 |
关于float,double变量的几点说明浏览:1926 |
循环入门练习6 (C语言代码)浏览:1058 |