A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

大神们,请问下:如何实现两个整数变量X与Y的交换呢?

17 个回复

倒序浏览
int x; int y; int z;  z=x; x=y;  y=z;
回复 使用道具 举报
上学的时候,老师讲过,把x 和 y 看作成两杯水, z是空杯子。   把x 的水倒入z; 把y的水倒入x;最后把z中的水倒入y;
回复 使用道具 举报
import org.junit.Test;  /*  * 实现两个整数交换的4种方法  */ public class NumberChange {         //1.采用第三方变量         @Test         public void test1(){                 int i = 10;                 int j = 20;                 System.out.println("i=" + i + ",j=" + j);                                  //数值交换                 int k = i;                 i = j;                 j = k;                 System.out.println("i =" + i + ",j=" + j);                 System.out.println("------------------");         }         @Test         public void test2(){                          //2.异或位运算 ^                 int i = 10;                 int j = 20;                 System.out.println("i=" + i + ",j=" + j);                 i = i ^ j;             j = i ^ j;//j = i ^ j ^ j                 i = i ^ j;//i = i ^ j ^ i                 System.out.println("i=" + i + ",j=" + j);                 System.out.println("------------------");         }         //3.加法         @Test         public void test3(){                 int i = 10;                 int j = 20;                 System.out.println("i=" + i + ",j=" + j);                                  i = i + j;                 j = i - j;                 i = i - j;                 System.out.println("i=" + i + ",j=" + j);                 System.out.println("------------------");         }         //4.一句话搞定         @Test         public void test4(){                 int i = 10;                 int j = 20;                 System.out.println("i=" + i + ",j=" + j);                 j = (i + j) - (i = j);                 System.out.println("i=" + i + ",j=" + j);         } }
回复 使用道具 举报
直接采用位异或的规律进行交换即可
回复 使用道具 举报
三种思路啊,你这样水贴会被封的
回复 使用道具 举报
用^就可以了,比如x=x^y;
y=x^y;
x=x^y;
就能做到了
回复 使用道具 举报
加减法, 第三方变量也可以做到
回复 使用道具 举报
这是不是典型的水贴???
回复 使用道具 举报
int x,y; int z =x; int x = y; int y =z;
回复 使用道具 举报
还有一种:  int x,y;   x = x + y; y = x - y;         x = x - y;
回复 使用道具 举报
定义中间变量吧
回复 使用道具 举报
fanxiaolin 来自手机 中级黑马 2016-4-11 23:26:52
13#
第三方变量,这种问题看视屏
回复 使用道具 举报
异或的方法
回复 使用道具 举报
定义一个第三方的变量    int c ;        c = a ;       a = b ;     b = c ;   然后在输出试下
回复 使用道具 举报
int x,y
x =x+y;
y = x - y
x = x - y
回复 使用道具 举报
定义一个临时变量temp
回复 使用道具 举报
面试的话 用异或  
开发的话 用temp
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马