zoukankan      html  css  js  c++  java
  • java实现两个int数交换

    普通方法,进阶方法,大神方法

     1 @Test
     2     public void test3(){
     3         int m = 5;
     4         int n = 12;
     5         
     6         //要求m和n交换位置
     7         System.out.println("m=" + m + " n=" + n);//m=5 n=12
     8         
     9         //方法一:定义临时变量
    10         //优点:操作简单,缺点:需定义临时变量,内存消耗较大
    11         int temp = m;
    12             m = n;
    13             n = temp;
    14         System.out.println("m=" + m + " n=" + n);//m=12 n=5
    15         
    16         //方法二:不定义临时变量,使用相加
    17         //优点:无需定义临时变量,节省内存。缺点:当两个数值较大时,容易丢失精度
    18         m = m + n;//12 + 5
    19         n = m - n;//12 + 5 - 5,是原来的m的值,赋给n
    20         m = m - n;//12 + 5 - 12,是原来n的值,赋给m
    21         System.out.println("m=" + m + " n=" + n);//m=5 n=12
    22         
    23         //方法三:大神专用,使用异或^
    24         //优点:不会丢失精度,不用定义变量,内存消耗最小,缺点:一般人不会想到这么写,写了一般人也看不懂
    25         m = m ^ n;
    26         n = m ^ n;// m ^ n ^ n == m
    27         m = m ^ n;// m ^ n ^ m == n
    28         System.out.println("m=" + m + " n=" + n);//m=12 n=5
    29         
    30     }

    方法二不建议使用,因为有可能丢失精度

  • 相关阅读:
    怎么样从多列的DataTable里取需要的几列
    .net core 生成二维码
    sql server2012卸载
    github实用的搜索小技巧
    c# 中的索引
    IOC
    Python基础-while
    Python基础-判断闰年
    Python基础-while奇数和
    Python基础-奇偶判断调用函数
  • 原文地址:https://www.cnblogs.com/gode/p/8286675.html
Copyright © 2011-2022 走看看