两个数的交换,三种方法实现
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
相关文章推荐
- 三种实现交换的方法,其中一个诡异的swap函数——C/C++语言(问题求助)
- 交换两个数的值Swap的一些方法及其源代码实现
- 交换函数swap的三种实现方法
- 交换两个数的值的三种指针方法——指针的引用和指向指针的指针
- 交换两个数的三种方法
- 交换两个数的三种方法
- 算法实现两个数交换(多种方法)
- 如何在Java中实现将两个数相互交换的方法
- 三种方法实现不引入变量交换两个变量值
- 三种方法实现不引入变量交换两个变量值
- 就地交换两个数的三种方法
- C语言三种方法实现两个变量值的交换
- 黑马程序员__三种方法实现两个变量值的交换
- C语言基础—实现两个变量交换的三种方法
- 三种方法实现求两个数的最大公约数
- 实现两数 交换的三种不同编程方法。
- 两个数交换的三种方法
- 《面向对象程序设计与VC++实现》--Liwei_1_3 (交换 使用引用、指针、变量三种方法)
- 交换两个变量值的三种方法(Java实现)
- Java基础学习6(位运算符,交换两个数的三种方法)