zoukankan      html  css  js  c++  java
  • 两数交换的三种方法(C/C++)

    1.两个杯子交换液体,拿第三个杯子做媒介

    C语言示例代码:

     1 #include<stdio.h>
     2 
     3 int main()
     4 {
     5     int a=10,b=20;
     6     int c;
     7     c=a;
     8     a=b;
     9     b=c;
    10     printf("a=%d,b=%d
    ",a,b);
    11     
    12     return 0;
    13 }

    2.加减法实现,求和后分别减去自己,完成交换

    C语言示例代码:

    #include<stdio.h>
    
    int main()
    {
        int a=10,b=20;
        a=a+b;
        b=a-b;
        a=a-b;
        printf("a=%d,b=%d
    ",a,b);
        
        return 0;
    }

    3.异或运算实现

    C语言示例代码:

     1 #include<stdio.h>
     2 
     3 int main()
     4 {
     5     int a=10,b=20;
     6     a=a^b;
     7     b=a^b;
     8     a=a^b;
     9     printf("a=%d,b=%d
    ",a,b);
    10     
    11     return 0;
    12 }

    重点分析下异或运算法,如下图所示:

    第6行:a=a^b;

         

    第7行:a=a^b;

    第8行:a=a^b;

     

    实际上,加法内部实现就用的是按位异或。

  • 相关阅读:
    STL next_permutation 全排列
    日期问题
    兰顿蚂蚁
    矩阵翻硬币
    数学问题-排列组合
    h5css3_03练习
    h5css3_03
    h5css3_02练习
    h5css3_02
    h5c3_01练习
  • 原文地址:https://www.cnblogs.com/kaml8/p/11068242.html
Copyright © 2011-2022 走看看