您的位置:首页 > 编程语言 > Java开发

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

2015-01-13 02:12 323 查看

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

方法一:使用第三方变量交换数据;

         

方法二:使用加减法,并且不使用第三方变量      

                      思路: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 = b
a = a + b;
//计算前:    a = a+b,	b = b
//计算步骤: b = (a+b) - b = a
//计算后:    a = a+b,   b = a
b = a - b;
//计算前:    a = a+b,	b = a
//计算步骤:a = (a+b) -a = b
//计算后:    a = b,   b = a
a = 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 = b
a = a ^ b;
//计算前:    a = a^b,	b = b
//计算步骤:b = a^b^b = a
//计算后:    a = a^b,   b = a
b = a ^ b;
//计算前:    a = a^b,	b = a
//计算步骤:a = a^b^a = b
//计算后:    a = b,   b = a
a = a ^ b;
//打印交换后的值
System.out.println("方法3交换后:a == "+a+"  b == "+b);
}
}


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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息