题目
辗转相除法手写过程逐步打印
思路
在 GCD 循环里每步 System.out 当前 a,b 与 a%b;直到余数 0,最后一非零除数即 GCD,也可逐步打印商。
解题分析
本题重点是展示辗转相除每一步的商和余数,算法与第 23 题相同,多的是格式化输出,便于对照手算。
完整程序
import java.io.*;
public class Main {
public static void main(String[] args) {
int a = 48, b = 18;
int x = a, y = b;
while (y != 0) {
System.out.println(x + " / " + y + " = " + (x / y) + " ... " + (x % y));
int t = x % y; x = y; y = t;
}
System.out.println("gcd = " + x);
}
}
运行示例
输出:
48 / 18 = 2 ... 12
18 / 12 = 1 ... 6
12 / 6 = 2 ... 0
gcd = 6