不使用中间变量交换两个数
Posted Zeroinger
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不使用中间变量交换两个数相关的知识,希望对你有一定的参考价值。
第一种用数学思维,第二种用异或
如交换a,b
1: a=a+b;
b=a-b;
a=a-b;
2: a=a^b;
b=b^a;
a=a^b;
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int main() { int a,b; cin>>a>>b; a=a+b; b=a-b; a=a-b; cout<<a<<" "<<b<<endl; a=a^b; b=a^b; a=a^b; cout<<a<<" "<<b<<endl; return 0; }
以上是关于不使用中间变量交换两个数的主要内容,如果未能解决你的问题,请参考以下文章
位运算常用操作总结位运算应用口诀清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运