Algs4-1.1.24欧几里得算法求最大公约数

1.1.24给出使用欧几里得算法105和24的最大公约数的过程中得到的一系列p和q的值。扩展算法中的代码得到一个程序Euclid,从命令行接受两个参数,计算它们的最大公约数并打印出每次调用递归方法时的两个参数。使用你的程序计算1 111 111和1 234 567的最大公约数。
public class Test
{
     public static void main(String[] args)
    {
     StdOut.printf("gcd(105,24)=%d",gcd(105,24));
    }
     public static int gcd(int p,int q)
     {
         StdOut.printf("p=%d,q=%d ",p,q);
         if (q==0) return p;
         int r=p % q;
         return gcd(q,r);
     }
}
图片

public class Euclid
{
     public static void main(String[] args)
    {
         int p=Integer.parseInt(args[0]);
         int q=Integer.parseInt(args[1]);
        StdOut.printf("gcd("+Integer.toString(p)+","+Integer.toString(q)+")=%d",gcd(p,q));
    }
     public static int gcd(int p,int q)
     {
         StdOut.printf("p=%d,q=%d ",p,q);
         if (q==0) return p;
         int r=p % q;
         return gcd(q,r);
     }
}
图片

原文地址:https://www.cnblogs.com/longjin2018/p/9848621.html