过程简述(原理不多赘述,网上很多)
(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语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:501 |
简单的a+b (C语言代码)浏览:596 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:522 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1415 |
【计算直线的交点数】 (C语言代码)浏览:1442 |
printf基础练习2 (C语言代码)浏览:617 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:486 |
字符逆序 (C语言代码)浏览:504 |
盐水的故事 (C语言代码)浏览:1524 |
C语言训练-斐波纳契数列 (C语言代码)浏览:593 |