求助,一个题目,大神们求帮助了。。。
//如果要把两个整型变量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的互换,楼主满意否??????? --------------------编程问答-------------------- 去百度 答案多得很 --------------------编程问答--------------------
+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);
我误人子弟……
自己给自己丢个板砖……
--------------------编程问答-------------------- 哈哈,楼上没有理解异或的意思,其实利用的原理是一个数对同一个数异或两次等于它本身,这样就达到了交换的目的 --------------------编程问答-------------------- 这好像是线性代数吧? --------------------编程问答-------------------- 不用填写功能就实现了
用的是异或的原理
--------------------编程问答--------------------
+1 --------------------编程问答-------------------- 正解,无需借助其它变量,空间复杂度O(1)
补充:Java , Java SE