1. public static int gac(int p, int q){
    2. if (q==0)
    3. return p;
    4. int r = p % q;
    5. return gac(q,r);
    6. }

    有一个很妙的地方,如果 q 大于 p 时 r 会等于 p ,这时在返回函数等于 q p 交换了位置。