1.题目:设计算法完成两个变量a,b中数值的交换:
c=a
a=b;
b=c;
能否不借助变量完成两个数的交换呢?给出算法。
2.算法分析:要求交换两个变量,一般也是最容易想到的方法是增加第三个变量,借助第三变量进行操作,但是该题目要求不借助变量。这时可以联系数学中的一个数加上另一个数,再减去原数,即可将数1交换成数2,即;
a=a+b
b=a-b
a=a-b
3.代码如下;
#include <iostream>
using namespace std;
int main()
{
int a = 5, b = 10;
cout<< "交换前 a= "<< a << " b=" << b << endl;
a =a+b;
b = a - b;
a = a - b;
cout << "交换后 a= " << a << " b=" << b << endl;
return 0;
}
4.运行结果: