算法实现两个数交换(多种方法)

来源:互联网 发布:闹钟软件 编辑:程序博客网 时间:2024/05/16 19:52
对于实现两个数交换的方法,有很多种。

首先可以区分是否利用第三个变量:

一、使用第三个变量

  

int a = 3, b = 5, c;cout<<"===交换前==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;c = a;a = b;b = c;cout<<"===交换后==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;

二、不使用第三个变量


    1、异或方法(高效)

<span style="font-size:24px;">        int a = 3, b = 5;cout<<"===交换前==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;   //解释如下:a = a ^ b;                     //a = 3 ^ 5b = a ^ b;   //b = (3 ^ 5) ^ 5a = a ^ b;   //a = (3 ^ 5) ^ 3cout<<"===交换后==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;</span>


    2、加法

int a = 3, b = 5;cout<<"===交换前==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;//解释如下:a = a + b;//a = 3 + 5b = a - b;//b = 8 - 5a = a - b;//a = 8 - 3cout<<"===交换后==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;



    3、乘法


int a = 3, b = 5;cout<<"===交换前==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;//解释如下:a = a * b;//a = 3 * 5;b = a / b;//b = 15 / 3;a = a / b;//a = 15 / 5;cout<<"===交换后==="<<endl;cout<<"a = "<<a<<endl;cout<<"b = "<<b<<endl;




0 0
原创粉丝点击