import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
int m = console.nextInt();
int n = console.nextInt();
int result = getCM(m, n);
System.out.println(result);
}
public static int getCM(int m, int n){
//write your code here......
int ans = 0;
int gcd1 = 0;
// if(m < n)
// gcd1 = gcd(m ,n);
//else if(m > n)
gcd1 = gcd(m ,n);
// else
// gcd1 = m;
ans = ((m * n )/ gcd1);
return ans;
}
public static int gcd(int m, int n){
int gcd1 = 0;
if(m < n){
gcd1 = m;
n = n % m;
if(n != 0)
gcd1 = gcd(n ,m);
}
if(m > n){
gcd1 = n;
m = m % n;
if(m != 0)
gcd1 = gcd(m ,n);
}
if(m == n) return m;
return gcd1;
}
}
看起来没什么问题 但是如果自己代入3 、7就可以知道第一个满足后但是n变了,要经过第二个if判断这时就坏菜了
解决方法就是在每个括号里加上return;但是这个函数的if外面必须要有一个return 所以删掉
if(m == n)
就可以了
或者删掉后面两个if直接在输入之前对数据进行判断。