a024. 最大公因數(GCD)
我作弊,用BigInteger.gcd(),缺點是比較慢。
另一個方法是輾轉相除法,非常經典的遞迴,可以看看這個影片:歐幾里得演算法(輾轉相除法)
輾轉相除法: public static int gcd(int a, int b){ return b == 0 ? a: gcd(b, a % b); }
程式碼如下:
/* a024. 最大公因數(GCD) * * 2020/3/2 */ import java.util.Scanner; import java.math.BigInteger; public class Pa024{ public static void main(String[] args){ Scanner scanner = new Scanner(System.in); while(scanner.hasNext()){ BigInteger big_a = new BigInteger(scanner.next()); BigInteger big_b = new BigInteger(scanner.next()); System.out.println(big_a.gcd(big_b)); } } }
沒有留言:
張貼留言