在程序中实现交换两个数的功能并不复杂,但如果不使用中间变量,就需要动一下脑筋.在本文介绍了两个方法(其实原理都是一个) .其基本原理就是数的中和. 也就是说,通过某种运算(二元运算)将a和b两个数变成一个数,并保存在其中一个变量中.然后再通过同 样的运算符将a或b中和掉.这样实际上是利用了a或 b本身作为了中间变量. 先看第一个算法. static class Num { int a; int b; } public static void swap1(Num num) { num.a = nu
问题描述 求两个数最大公约数,欧几里得算法 求两个数最大公约数,欧几里得算法,这两种方法除第一种可以避免除数为零的情况,两者有什么区别?谢谢 public static int gcd(int p, int q) { if (q == 0) return p; int r = p % q; return gcd(q, r) ; } public static int gcd(int p, int q) { int r = p % q; if (r == 0) return q; return g