两个数的交换,三种方法实现
来源:互联网 发布: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
- 两个数的交换,三种方法实现
- 交换两个数的三种方法
- 两个数交换的三种方法
- 交换两个数的三种方法
- 交换两个数的三种方法
- 交换两个数的三种方法
- 两个数交换的三种方法
- 两个数交换的三种实现
- 就地交换两个数的三种方法
- 实现两个变量值交换的三种方法
- 实现两个int 型数据交换的三种方法
- 实现两数 交换的三种不同编程方法。
- 交换两个数的五种方法
- 交换两个数的四种方法
- 交换两个数的两种方法
- 交换两个数的四种方法
- 交换两个数的方法
- 交换两个变量的三种方法
- Which Programming Book would you buy if you were given 100$ to spend?
- POJ-1976(DP)
- stack括号配对
- golang中fmt vs log
- android系统sharedUserId: SYSTEM_UID+PHONE_UID+BLUETOOH_UID+LOG_UID+NFC_UID
- 两个数的交换,三种方法实现
- LA5713 减小边权求MST
- 啊哈算法 之 快速排序
- 短网址API设计
- 【并行计算】Linus:为何对象引用计数必须是原子的
- wrong answer 很多情况下是因为题目没看清楚
- Protocol Buffers编码详解,例子,图解
- 邮件激活
- well balanced reporting.The complete real truth nonetheless