java大白入门实例09之《求整数的最大公约数》

 for循环求a和b的最大公约数:

import java.util.Scanner;

public class java_09 {
    public static void main(String[] args) {
//        求最大公约数
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = Math.abs(scan.nextInt());//求个绝对值,保证负数也能求

        Scanner scan1 = new Scanner(System.in);
        System.out.println("请输入另一个整数");
        int b = Math.abs(scan.nextInt());

        int min = 0;
//        判断比较a,b谁是最小值
        if(a>b){
            min = b;
        }else{
            min = a;
        }
//        定义一个最大公约数
        int gys = 0;
        for (int i=1;i<=min;i++){
            if(a % i == 0 && b % i == 0){
                gys = i;
            }
        }
        System.out.println("a和b的最大公约是: "+gys);
    }
}

 使用while循环,并从最小值开始递减判断最大公约数

import java.util.Scanner;

public class java_09 {
    public static void main(String[] args) {
//        求最大公约数
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入一个整数");
        int a = Math.abs(scan.nextInt());//求个绝对值,保证负数也能求

        Scanner scan1 = new Scanner(System.in);
        System.out.println("请输入另一个整数");
        int b = Math.abs(scan.nextInt());

        int min = 0;
//        判断比较a,b谁是最小值
        if(a>b){
            min = b;
        }else{
            min = a;
        }
        int gys = 0;
        while(min>1){
            if(a % min == 0 && b % min == 0){
//        一旦满足条件就是最大公约数
                gys = min;
//        跳出循环
                break;
            }
            min--;
        }

        System.out.println("a和b的最大公约是: "+gys);
    }
}

 最后一个方法更为省时快捷,推荐~

 

 上一篇:java08--求数组最大值和最小值

 下一篇:java10--函数的定义与调用

おすすめ

転載: blog.csdn.net/qq_41579104/article/details/120707423