您的位置:首页 > 编程语言 > Java开发

java中计算最大公约数的两种方法

2018-02-12 13:55 429 查看
第一种:枚举法
这种方法需要计算机将每一个数都去试一遍才能找到最后的值
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner in=new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int s=1;
        int i;
        for(i=2;i<=a&&i<=b;i++)
        {
        if(a%i==0&&b%i==0)
        {
        s=i;
        }
        }
        System.out.println(a+"与"+b+"的最大公约数是"+s);
}

}
第二种:辗转相除法
public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int oa=a;
        int ob=b;
        while(b!=0)
        {
        int r=a%b;
        a=b;
        b=r;
        }
        System.out.println(oa+"与"+ob+"的最大公约数是"+a);//在while过程中,a与b的值会发生改变,所以需要将a,b的值赋                                                                                                   给oa,ob
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: