不用临时变量,交换整数a,b的值

来源:互联网 发布:c语言如何打开文件 编辑:程序博客网 时间:2024/05/21 14:52

今天面试的时候面试官问了这样一道题:如何在不用临时变量的情况下,交换整数a,b的值,现在记录一下解题过程。


#include <iostream>using namespace std;int main(){int a = 2;int b = 3;a = a + b;b = a - b;a = a - b;cout << "a的值:" << a << endl;cout << "b的值:" << b << endl;return 0;}

这种做法在a和b数值较小的情况下是对的,但是a+b如果很大则会溢出,所以也不是最优的解法。最好的方法是使用异或:

{a ^= b;b ^= a;a ^= b;}


在Python中这个问题更简单
[python] view plain copy
  1. a,b=b,a  

0 0
原创粉丝点击