您的位置:首页 > 其它

递归:最小公倍数和最大公约数求解

2014-04-13 19:20 459 查看
package none008第六章递归;
//最小公倍数和最大公约数求解
public class NecessaryApp {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

minTimes(2,2);
System.out.println(maxTimes2(120,60));

}
//最小公倍数
public static int minTimes(int m,int n){
if(m>n){
m^=n;
n^=m;
m^=n;
}
for(int i=n;i<=m*n;i++){
if(i%m==0&&i%n==0){
System.out.println("最小公倍数: "+i);return i;
}
}
return 0;
}
//递归求最大公约数(一个数A与比自己大的数取余,余数总是为A;一个数与比自己小的数取余,余数比之前求余的两个数都要小).
//这个方法求最大公约数较好。喜欢
public static int maxTimes(int m,int n){
if(m%n==0)
return n;
else
return maxTimes(n,m%n);
}
//普通循环求最大公约数
public static int maxTimes2(int m,int n){
if(m>n){
int temp=m;m=n;n=temp;
}
if(n%m==0){
return m;
}else {
for(int i=m-1;i>0;i--){
if(n%i==0&&m%i==0){
return i;
}
}
return 0;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: