java的到两个数的最大公约数

怎么思考得到16和24的最大公约数呢,思路如何,如何选择合适的方法呢。。


public static void main(String[] args) {
          int numOne = 24;
          int numTwo = 16;
          int z = 0;
          //大的数魔除小的数,判断余数是否为0
          while(numOne % numTwo!=0) {
              //如果余数不为0,说明他们之间还有最大公约数z
              z = numOne % numTwo;
              //把numTwo和z较大的一个赋给numOne,较小的一个赋给numTwo后,重复上述步骤
              numOne=numTwo;
              numTwo=z;
          }
          //最终输出的numTwo即为最大公约数
          System.out.println(numTwo);
      }

试试辗转相除法,去搜一下就知道了