题解 | 编写函数实现两数交换(指针方式)
#include <iostream> using namespace std; // write your code here...... void swap(int *a , int *b) { *a = *a + *b; *b = *a - *b; *a = *a - *b; } int main() { int m, n; cin >> m; cin >> n; // write your code here...... swap(&m, &n); cout << m << " " << n << endl; return 0; }
大致思路:
交换两个变量的值,同时不使用第三个变量。假设a = 3 , b = 2;
a = a + b; //此时 a = 3 + 2 = 5
b = a - b; //此时 b = a + b - b,所以b = a = 3
a = a - b; //次数 a = a + b - a,所以a = b = 2