Loading... 辗转相除法又名欧几里得算法 <div class="panel panel-default collapse-panel box-shadow-wrap-lg"><div class="panel-heading panel-collapse" data-toggle="collapse" data-target="#collapse-00318e1f3a1ffe06e45cc97ead396de093" aria-expanded="true"><div class="accordion-toggle"><span>思路</span> <i class="pull-right fontello icon-fw fontello-angle-right"></i> </div> </div> <div class="panel-body collapse-panel-body"> <div id="collapse-00318e1f3a1ffe06e45cc97ead396de093" class="collapse in collapse-content"><p></p> a %b = c(前提条件a>b) a = b; b = c; 当a%b=0时,最大公约数为a; <p></p></div></div></div> 实现过程如下: ```cpp #include <stdio.h> typedef int cont; int main () { cont a, b, max, min, temp = 1; scanf ("%d %d", &a, &b); if (a > b) { max = a; min =b; } else { max = b; min = a; } while ( temp ) //辗转相除法 ,当最大值能整除最小值时,有最大公约数 { temp = max % min; //首先取两者之间的余数 max = min;//用最小值赋予最大值 min = temp;//用余数赋予最小值 } printf ("%d", max); return 0; } ``` 最后修改:2021 年 06 月 02 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 0 如果文章有用,请随意打赏。