过程简述(原理不多赘述,网上很多)


(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分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论