一条语句交换两个元素值
2017-04-24 19:09
239 查看
#include<iostream>
using namespace std;
int main(int argc, char** argv){
int a, b;
cin >> a >> b;
a = (a != b ? a^b^a : a^b^a) ^ (a != b ? a^b^b : a^b^b) ^ (a != b ? b = a^b^b : b = a^b^b);
cout << a <<"\t"<< b;
return 0;
}
/*
a = 9; //1001
b = 11; //1011
a = a^b; //1001^1011 = 0010
b = b^a; //1011^0010 = 1001
a = a^b; //0010^1001 = 1011
*/
using namespace std;
int main(int argc, char** argv){
int a, b;
cin >> a >> b;
a = (a != b ? a^b^a : a^b^a) ^ (a != b ? a^b^b : a^b^b) ^ (a != b ? b = a^b^b : b = a^b^b);
cout << a <<"\t"<< b;
return 0;
}
/*
a = 9; //1001
b = 11; //1011
a = a^b; //1001^1011 = 0010
b = b^a; //1011^0010 = 1001
a = a^b; //0010^1001 = 1011
*/
^ | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |
相关文章推荐
- 一条语句交换两个元素的值
- 交换单链表中相邻的两个元素 Swap Nodes in Pairs
- (***)有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)
- jquery交换两个元素位置
- 用一条UPDATE语句交换两列的值
- [微软]有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 面试题20:搜索二叉树可能有两个元素发生了交换,如何恢复BST?
- 有两个10个元素的数组,分别为A和B,编程实现相同位置的元素, 如果 B 的元素小于 A 的元素进行数值交换:(使用回调函数实现)
- 【学习点滴-数据结构-单链表】交换单链表中任意两个元素
- p62 练习3.3 通过只调整指针(而不是数据)来交换两个相邻的元素,使用:
- 一条SQL语句统计两个表的记录数
- python列表中任意两个元素交换
- 交换单链表中任意两个元素(不包括表头)
- [微软]有两个序列a,b,大小都为n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小
- 7单链表交换任意两个元素(不包括表头)
- 交换任意两个元素进行排序进行的最小交换次数
- 程序员面试题目总结--链表(7)【实现单链表交换任意两个元素(不包括表头)】
- 有两个序列a,b,大小都有n,序列元素的值任意整数,无序; 要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b无素的和]之间的差最大。
- 交换单链表任意两个元素(完整程序)
- 7-6 冒泡法排序(20 分) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素