public static int gac(int p, int q){ if (q==0) return p; int r = p % q; return gac(q,r); } 有一个很妙的地方,如果 q 大于 p 时 r 会等于 p ,这时在返回函数等于 q p 交换了位置。