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;