您的位置:首页 > 其它

最大公约和最小公倍数

2015-09-04 09:55 260 查看
package basic40;

import java.util.Scanner;

public class CommonDivisor {
public static int CommonDiv(int a, int b){
int max = a > b ? a : b;
int min = a < b ? a: b;
while (max % min != 0){
int temp = max % min;
max = min;
min = temp;
}
return min;
}

public static int CommonMultiple(int a, int b){
int commonDivisor = CommonDiv(a, b);
int aa = a / commonDivisor;
int bb = b / commonDivisor;
return commonDivisor * aa * bb;
}

public static void main(String args[]){
Scanner sc = new Scanner (System.in);
int a = sc.nextInt();
int b = sc.nextInt();
System.out.println( "CommonDivisor is:" + CommonDiv (a, b));
System.out.println("CommonMultiple is:" + CommonMultiple(a, b));

}

}

注意:

1.一开始要判断输入的数的情况:若为负数;若有为0的数, 需要return -1

2.求最大公约数更简便的写法:

public static int gcd(int m, int n)

{

while (true)

{

if ((m = m % n) == 0)

return n;

if ((n = n % m) == 0)

return m;

}

}

3.最小公倍数的另一种求法

a * b / c

4.while(true)的用法:

用法?问的好奇怪。while都是用来循环么。循环终止条件写true,这种情况,是需要在循环内主动终止循环的,要么使用return返回,要么使用break跳出循环。
用在哪里呢?比如socket连接,服务端就需要一直等到客户端输入啊响应啊这么样的。还有很多其他的情况呢。需要你慢慢去发掘。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: