昨天我看到了一个很有意思的一个面试题:如何在没有第三个变量的情况下进行两个变量交换大小
大家再在平时进行两个变量交换大小的时候通常会进行将其中的一个赋值给第三个变量,借助第三个变量进行两个变量交换,如下:
#include <iostream>
#include <algorithm>
using namespace std;
int main(){int m,n;cin >> m >> n;int temp = m;m = n;n = temp;cout << m << " " << n;return 0;
}
但是如果不借助第三个变量的话,那要怎么做呢,这就要有些思维了:
#include <iostream>using namespace std;int main(){int m = 20;int n = 10;m = m + n;//算总和赋值给mn = m - n;//总和减去n就是m,赋值给nm = m - n;//总和减去m就是n,注意因为在上面的时候n就已经被赋值成m了cout << m << endl;cout << n << endl;return 0;
}
嘿嘿,没想到吧大家,没事,纯纯思维题!!