过程简述(原理不多赘述,网上很多)
(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语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复