import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
         while (a != b) {
            if (a > b) {
                a = a - b;
            } else {
                b = b - a;
            }
        }
        System.out.println(a);
    }
    
}
这个是更相减损术,两个数字相减(大的减去x小的)一直到两数相等为止。
import java.util.Scanner;
public class Main{
    public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        while(true){
            int num3 = num2;
            num2 = num1 % num2;
            num1 = num3;
            if(num2 == 0){
                break;
            }
        }
        System.out.printf("%d",num1);
    
    }
}
这道题我是用辗转相除法做的,运行实例如下:
num3 = num2 -------- num2 = 6 -----------> num3 = 6
num2 = num1 % num2 ----------num1 =4, num2 = 6   -------->   4 % 6 = 4--------> num2 = 4
num1 = num3 ----------num3 = 6 ----------->num1 = 6;
num3 = num2 ----------num2 = 4 --------> num3 = 4
num2  = num1 % num2 --------num1 = 6,num2 = 4-------->   6 % 4 = 2 --------->num2 = 2;
num1 = num3 ---------num3 = 4 --------->num1 = 4;
num3 = num2 ----------num2 = 2 --------->num3 = 2
num2 = num1 % num2 -------->num1 = 4, num2 = 2 -------> 4 % 2 = 0---------->num2 = 0;
num1 = num3 --------->num3 = 2 --------->num1 = 2;