本文主要是介绍辗转相除法:求最大公约数和最小公倍数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这么简单哈哈哈我大一C语言都会做!
方法一:常规算法
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;int main()
{int m,n,r,p;cin>>m>>n;p=m*n;if(m<n)swap(m,n);r=m%n;while(r){m=n;n=r;r=m%n;}cout<<n<<" "<<p/n<<endl;
}
方法二:递归算法
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <stack>
using namespace std;
int gcd(int m,int n)
{return m%n?gcd(n,m%n):n;
}
int main()
{int m,n,r,p;cin>>m>>n;p=m*n;cout<<gcd(m,n)<<" "<<p/gcd(m,n)<<endl;
}
这篇关于辗转相除法:求最大公约数和最小公倍数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!