2020年3月1日 星期日

[zerojudge]a024. 最大公因數(GCD)

a024. 最大公因數(GCD)

我作弊,用BigInteger.gcd(),缺點是比較慢。
另一個方法是輾轉相除法,非常經典的遞迴,可以看看這個影片:歐幾里得演算法(輾轉相除法)

        輾轉相除法:
        public static int gcd(int a, int b){
            return b == 0 ? a: gcd(b, a % b);
        }
    

程式碼如下:

  1. /* a024. 最大公因數(GCD)
  2. *
  3. * 2020/3/2
  4. */
  5.  
  6. import java.util.Scanner;
  7. import java.math.BigInteger;
  8.  
  9. public class Pa024{
  10.  
  11. public static void main(String[] args){
  12. Scanner scanner = new Scanner(System.in);
  13.  
  14. while(scanner.hasNext()){
  15. BigInteger big_a = new BigInteger(scanner.next());
  16. BigInteger big_b = new BigInteger(scanner.next());
  17. System.out.println(big_a.gcd(big_b));
  18. }
  19. }
  20. }

沒有留言:

張貼留言