两个数的交换,三种方法实现

来源:互联网 发布:ubuntu ifconfig eth0 编辑:程序博客网 时间:2024/04/30 04:07


两个数字的交换,三种方法


方法一:使用第三方变量交换数据;
         
方法二:使用加减法,并且不使用第三方变量      

                      思路:a加上b的和,减去a,就等于b,再用这个数减去b,就等于a。


方法三:使用异或方法交换,并且不使用第三方变量

                       思路:一个数异或另一个数偶次,都等于这个数本身。


/**题目:对两个数据交换要求:使用三种方法交换数据方法1:采用第三方变量方法2:通过加减法运算方法3:通过异或的方法 */package xiaolu.swap;public class swap {public static void main(String[] args) {//调用方法method_1(2,4);method_2(2,4);method_3(2,4);}/* method_1方法:使用第三方变量交换数据;  参数:传入两个参数,并且打印交换过后的值。 */public static void method_1(int a,int b){//打印一次交换前的值System.out.println("方法1交换前:a == "+a+"  b == "+b);//定义一个第三方变量,作为缓存int temp = a;b = a;a = temp;//打印交换后的值System.out.println("方法1交换后:a == "+a+"  b == "+b);}/* method_2方法:使用加减法,并且不使用第三方变量  参数:传入两个参数,并且打印交换过后的值。  思路:a加上b的和,减去a,就等于b,再用这个数减去b,就等于a。 */public static void method_2(int a,int b){//打印一次交换前的值System.out.println("方法2交换前:a == "+a+"  b == "+b);//计算前:    a = a,b = b//计算步骤:a = a+b //计算后:    a = a+b,   b = ba = a + b;//计算前:    a = a+b,b = b//计算步骤: b = (a+b) - b = a//计算后:    a = a+b,   b = ab = a - b;//计算前:    a = a+b,b = a//计算步骤:a = (a+b) -a = b//计算后:    a = b,   b = aa = a - b;//打印交换后的值System.out.println("方法2交换后:a == "+a+"  b == "+b);}/* method_3方法:使用异或方法交换,并且不使用第三方变量  参数:传入两个参数,并且打印交换过后的值。  思路:一个数异或另一个数偶次,都等于这个数本身。 */public static void method_3(int a,int b){//打印一次交换前的值System.out.println("方法3交换前:a == "+a+"  b == "+b);//计算前:    a = a,b = b//计算步骤:a = a^b//计算后:    a = a^b,   b = ba = a ^ b;//计算前:    a = a^b,b = b//计算步骤:b = a^b^b = a//计算后:    a = a^b,   b = ab = a ^ b;//计算前:    a = a^b,b = a//计算步骤:a = a^b^a = b//计算后:    a = b,   b = aa = a ^ b;//打印交换后的值System.out.println("方法3交换后:a == "+a+"  b == "+b);}}

代码下载地址:http://download.csdn.net/detail/lmh820822/8355395

0 0