百度试题 结果1 题目使用按位异或(^)运算,可以不使用中间变量,快速交换两个变量的值。设计一个函数,实现快速交换两个整型变量的值。相关知识点: 试题来源: 解析 void Swap( int A, int B) { A=A^B; B=A^B; A=A^B; }反馈 收藏
在C/C++中,我们可以使用位操作(bitwise operation)来交换两个变量的值。特别地,我们可以使用异或(XOR)操作:一个数与任何数的异或两次,结果仍然是原来的数。int a = 5;int b = 10;a = a ^ b;b = a ^ b; // 这里的a其实是a^b,所以b = a^b就变成了b = b^a^b,由于任何数与自身的异...
“写一个swap函数,要求不使用中间变量,交换a、b两个变量的值”,应该算是老生常谈了。但今天却碰到一点新问题。 今天阅读《程序员的自我修养--链接、装载与库》,P98有一小段示例代码: voidswap(int*a,int*b){*a ^= *b ^= *a ^= *b; } 我觉得用一行代码来实现交换a与b的值,还是很简洁的。于是顺...
交换两个int类型数字的值,最简单的方式就是使用一个临时变量 publicstaticvoidswap1(int[] A,inti,intj){inttemp=A[i]; A[i] = A[j]; A[j] = temp; } 如果不使用临时变量,我们也可以交换 publicstaticvoidswap2(int[] A,inti,intj){if(i != j) { A[i] ^= A[j]; A[j] ^= A[i]; ...
在Python中,不使用中间变量交换两个变量的值是一种常见且简洁的操作,这主要得益于Python的元组解包特性。以下是如何实现的详细步骤和代码示例: 1. 理解Python中的元组解包特性 Python允许你在赋值语句的左侧使用元组(尽管它不显式地以元组的形式写出来),并且可以从任何可迭代对象(比如列表、元组、集合等,但在这个场景...
定义两个变量如:number1,number2分别赋值为10和5,写程序交换两个变量的值。注:不能使用中间变量。 代码 intnumber1,number2;number1=10;number2=5;Console.WriteLine("交换前:number1={0},number2={1}",number1,number2);number1=number1+number2;number2=number1-number2;number1=number1-number2;Consol...
//不使用中间变量交换两个数的值 voidexchange_num(int*a,int*b) { ①*a=*a+ *b;//适用范围广 *b= *a-*b; *a=*a- *b; ②*a= (*a)*(*b); *b= (*a)/(*b); *a= (*a) / (*b);//当两个数有一个0或者都为0时就不再适用 ...
交换两个int类型数字的值,最简单的方式就是使用一个临时变量 publicstaticvoidswap1(int[]A,inti,intj) { inttemp=A[i]; A[i]=A[j]; A[j]=temp; } 1. 2. 3. 4. 5. 如果不使用临时变量,我们也可以交换 publicstaticvoidswap2(int[]A,inti,intj) { ...
异或运算,相同为 0 相异为 1 要注意这一段代码的缺点,二进制操作的效率是不高的,并且这段代码只适用于整数,对于浮点数是不能进行这个操作的,并且这个代码的可读性很差 附: ...
点评:典型的送人头的题目,在其他编程语言中不使用中间变量交换两个变量的值可以使用异或运算,Python中还可以通过内置的字节码指令直接交换两个变量的值。 方法一: a = a ^ b b = a ^ b a = a ^ b 方法二: a, b = b, a 扩展:需要注意, a, b = b, a这种做法其实并不是元组解包,虽...