当前位置:编程学习 > JAVA >>

求助,一个题目,大神们求帮助了。。。

//如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,
//但也可以在不借助任何其它变量的情况下完成。试填写缺失的代码。

public class MyTestTwo {
public void swap(int a,int b){
//  a = a ^ b;
//  b = ___ a ^ b ____;
//  a = ___ a ^ b ___;


}
}这东东到底怎么填啊
看了半天不知道填什么。。 --------------------编程问答-------------------- 前面注释掉是什么意思 这个程序貌似什么都不填就可以实现功能 --------------------编程问答-------------------- 对呀  我没有填 就可以实现了  你还有其他的条件没给吗?还是要填其他的内容? --------------------编程问答-------------------- x=x+y
y=x-y;
x=x-y;

三步完成x,y的互换,楼主满意否??????? --------------------编程问答-------------------- 去百度 答案多得很 --------------------编程问答--------------------
引用 3 楼 hh166439 的回复:
x=x+y
y=x-y;
x=x-y;

三步完成x,y的互换,楼主满意否???????


+1

题目中的^是位运算符"异或",就相当于+;
a=a^b;相当于x=x+y;
b=a^(!b);相当于y=x-y;
a=a^(!b);相当于x=x-y;
这里横线上是填的是!符。 --------------------编程问答--------------------
int a =1;
int b =2;
a = a ^ b;
b = b ^ a;
a = b ^ a;
System.out.println(a+"--"+b);
--------------------编程问答--------------------
引用 5 楼 blazingsoul 的回复:
引用 3 楼 hh166439 的回复:x=x+y
y=x-y;
x=x-y;

三步完成x,y的互换,楼主满意否???????

+1

题目中的^是位运算符"异或",就相当于+;
a=a^b;相当于x=x+y;
b=a^(!b);相当于y=x-y;
a=a^(!b);相当于x=x-y;
这里横线上是填的是!符。


我误人子弟……
自己给自己丢个板砖……
--------------------编程问答-------------------- 哈哈,楼上没有理解异或的意思,其实利用的原理是一个数对同一个数异或两次等于它本身,这样就达到了交换的目的 --------------------编程问答-------------------- 这好像是线性代数吧? --------------------编程问答-------------------- 不用填写功能就实现了
 用的是异或的原理
--------------------编程问答--------------------
引用 6 楼 hu3402379 的回复:
Java code??123456int a =1;        int b =2;        a = a ^ b;        b = b ^ a;        a = b ^ a;        System.out.println(a+"--"+b);

+1 --------------------编程问答--------------------
引用 3 楼 hh166439 的回复:
x=x+y
y=x-y;
x=x-y;

三步完成x,y的互换,楼主满意否???????
正解,无需借助其它变量,空间复杂度O(1)
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,