〔面试题〕无需额外变量交换两个变量的方法
2007-06-20 23:01
399 查看
两种方法:
1.使用异或
1 void swap(int a,int b)
2 {
3 a=a^b;
4 b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
5 a=a^b;
6 }
也有人写成了一句,就是读起来麻烦些:)
a^=b^=a^=b;
2.使用加减
1 void swap(int a,int b)
2 {
3 a = a + b ;
4 b = a - b ;
5 a = a - b ;
6 }
1.使用异或
1 void swap(int a,int b)
2 {
3 a=a^b;
4 b=b^a; //b^a相当于 b^a^b 也就是 b^a^b的值就是a了, 下边相同
5 a=a^b;
6 }
也有人写成了一句,就是读起来麻烦些:)
a^=b^=a^=b;
2.使用加减
1 void swap(int a,int b)
2 {
3 a = a + b ;
4 b = a - b ;
5 a = a - b ;
6 }
相关文章推荐
- 〔面试题〕无需额外变量交换两个变量的方法
- 笔试面试题二:Java中交换两个变量的值,你能想到几种方法?
- 交换两个变量的值,不得借助额外的存储空间,还有哪些方法?
- C语言之多种方法交换两个变量的值
- 交换两个变量的值的多种方法
- 交换两个变量的值,不使用第三个变量的四种方法
- 两个变量的值交换的多种方法
- Maria840js面试题:不使用中间变量,交换int型的 a, b两个变量的值
- 不占用额外空间 交换两个变量的值
- java中交换两个变量的方法
- 交换两个变量的值,不使用第三个变量的四种方法
- C语言交换两个变量值不利用额外变量
- 不使中间变量交换两个变量的值方法
- 如何不用额外的变量交换两个变量的值
- 用C语言实现给定两个整形变量的值,将两个值的内容进行交换。(4种方法)
- 不引入第三个变量交换两个变量的方法
- 另一道看上去很吓人的面试题:如何交换a和b两个整数的值,不用额外空间 (Rev. 2)
- 四种交换两个变量的值的方法
- (位运算符)请自己实现两个整数变量的交换 ^的特点 (面试题)
- Java面试题---只用两个变量,如何做到把两个整数交换?