题解 | 编写函数实现两数交换(指针方式)

#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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务