c++ 辗转相除(动图)
#include<iostream> #include<cstdio> #include<iomanip> #include<cstring> using namespace std; int main(){ int m,n; cin>>m>>n; int r=m; while(r!=0){ r=m%n; m=n; n=r; } cout<<m; return 0; }
用较大的数除以较小的数,再用出现的余数除以除数(变成被除数),
再用余数(第二余数)除以第一余数,如此反复,知道最后余数是0
为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数
的最大公约数