`

两个整数交换,不引入第三个参数

    博客分类:
  • JAVA
 
阅读更多

有两种方法:

public class Test {

    public static void main(String[] args) {

        method1();
        method2();
    }

    private static void method1() {

        int a = Integer.MAX_VALUE;
        int b = Integer.MIN_VALUE;

        System.out.println("交换前" + a + "," + b);
        a = a + b;
        b = a - b;
        a = a - b;
        System.out.println("交换后" + a + "," + b);
    }

    private static void method2() {

        int a = Integer.MAX_VALUE;
        int b = Integer.MIN_VALUE;

        System.out.println("交换前" + a + "," + b);
        a = a ^ b;
        b = a ^ b;
        a = a ^ b;
        System.out.println("交换后" + a + "," + b);
    }
}

 结果:

交换前2147483647,-2147483648
交换后-2147483648,2147483647
交换前2147483647,-2147483648
交换后-2147483648,2147483647

 

分享到:
评论

相关推荐

    C#不借助第三个变量实现两整数交换

    c#中实现两个int变量的数值互换,在借助第三个变量做临时载体的情况下,非常简单。  int a = 10;  int b = 5;  int c ;  c = a;  a = b;  b = c;  如果不借助第三方变量,有几种实现的方法:  1....

    两数交换的三种方法C#_java 两数交换的三种方法 两数交换方法

    第三种方法利用了位运算中的异或(XOR)操作符,这种方法不仅不使用额外的变量,而且在大多数情况下效率较高。步骤如下: 1. A与B进行异或操作,结果赋给A。 2. B与新的A(原B异或原A的结果)再次进行异或操作,...

    02交换两个变量的值

    通过引入第三个辅助变量,我们可以轻松地完成两个变量之间的值交换。这种技巧在实际编程中非常实用,尤其是在需要频繁进行值交换的算法或程序设计中。掌握这一基本技能对于提高编程能力具有重要意义。

    c++习题-超长数列中n个整数排列

    成员函数`sortpart`实现了部分排序功能,它接受两个整型参数`m`和`n`,表示要排序的子序列的起始位置和长度。通过封装排序逻辑到类中,增加了代码的复用性和可维护性。 5. **排序算法:冒泡排序变体** `sortpart`...

    输入三个数,求最大的

    整个程序的逻辑是首先提示用户输入三个整数,然后使用冒泡排序算法对这三个数进行排序,最后输出最大的数。这是一种非常基础但实用的排序示例,在教学或练习场景中经常被用到。 综上所述,这段代码展示了C#编程的...

    Java两个变量的互换(不借助第3个变量)具体实现方法

    在Java编程中,有时我们需要交换两个变量的值,但又不希望使用额外的第三个变量来辅助这个过程。这种情况下,可以利用位运算中的异或(XOR)操作符来实现两个变量的互换。本文将详细讲解如何通过异或运算在Java中不...

    C语言答案谭浩强

    8. 这段代码试图定义一个名为`change`的函数来交换两个整数的值,但在实际定义中没有指定参数类型,导致错误。在`main`函数中,如果`a`小于`b`,`change`函数应该被调用,但这将导致编译错误。 9. 这个程序使用引用...

    华为实习部分上机题解

    #### 一、计算两个整数之和 **题目描述:** 给出两个整数a和b,计算并输出它们的和。 **解决方案:** ```cpp #include int main(void) { int m, n, c; while (scanf("%d %d", &n, &m) != EOF) { c = m + n; ...

    信息安全数学基础第二讲

    带余除法定理2.1.4指出,对于任何两个整数a和b(b不为0),存在唯一的整数q和r,使得a可以表示为bq加上0到b绝对值减1之间的某个数r。这个定理是整数除法的基础,为计算和证明提供了便利。 接下来,我们引入了素数和...

    java程序[文].pdf

    3. 异常处理:第三个程序`Yichang`引入了异常处理。`method`方法接受一个整数`m`和一个字符串数组`args`,并可能抛出`Exception`。如果`m`大于`args.length`,则抛出异常。`methodCaller`方法尝试调用`method`,并在...

    c语言从入门到精通-创客诚品1

    3. **组合两个整数**:此程序将两个整数的个位数组合成新的数字。`getResult()`函数通过取模运算 `%` 获取个位数,然后进行组合。`system("pause")`用于暂停程序,防止窗口立即关闭。 4. **求绝对值**:`getNum()`...

    javascript入门笔记

    3、如果 a > b 的话,则交换两个数字的位置 4、再打印 a 和 b的值 3、在网页中,创建一个按钮,点击按钮时,完成 change 函数的调用 2、带参函数 1、定义语法: function 函数名(参数列表){ 语句块; } ...

    C语言中数据重复交换的问题分析.pdf

    接下来,文章给出了一个数据交换的实例,即输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。并编写了三个函数:输入10个数、进行处理和输出10个数。 然后,文章展示了原程序的代码,包括...

    对Python中实现两个数的值交换的集中方法详解

    在Python编程语言中,交换两个变量的值是一个常见的操作,特别是在处理数组、列表或其他数据结构时。本篇文章将深入探讨三种不同的方法来实现这个功能,这些方法都具有各自的特点和适用场景。 首先,我们来看看第一...

    易语言整数数组排序模块源码

    这里的“整数数组排序模块”就是一个独立的代码单元,可以方便地在其他程序中引入使用。 5. **源码阅读与调试**:学习此类资源时,应逐行阅读源代码,理解每一步操作的意义,同时可以通过调试工具观察程序运行过程...

    人教版六年级数学上册第二单元第三章节《倒数的认识》课件.ppt

    本课件主要介绍了人教版六年级数学上册第二单元第三章节的核心概念——倒数的认识。倒数是指在乘法运算中,两个数相乘的结果为1,那么这两个数就互为倒数。这一概念在小学高年级的数学学习中至关重要,因为它涉及到...

    五年级数学下册第三单元分数乘法(三)练习题及答案精选.doc

    然而,(3) 两个因数的积一定大于每个因数这个说法是错误的,例如,0乘以任何数都是0,不满足这个条件。 (4) 小时的是小时,这个表达是错误的,因为应该等于小时。 3. 分数比较与大小关系: 练习题中通过填空形式让...

    c++面对对象程序设计课后答案(谭浩强).pdf

    在C++中,正确的做法是使用第三个临时变量来交换两个变量的值。 11. **引用**:在第13题的`sort`函数中,使用了引用参数(`int &i, int &j, int &k`),这意味着对函数内部的`i`, `j`, `k`的修改会影响到函数外部的...

    c++ 谭浩强答案

    2. **默认参数**:`int c = 0`表示`c`有一个默认值0,当调用函数时不传入第三个参数时,将使用默认值。 3. **函数调用**:通过`max(a, b, c)`和`max(a, b)`分别调用带有不同参数列表的函数。 --- ##### 习题12:...

    Java中使用异或语句实现两个变量的互换

    下面是一个简单的Java代码实例,展示了如何使用异或操作符来交换两个整数变量`A`和`B`: ```java import java.util.Scanner; public class VariableExchange { public static void main(String args[]) { ...

Global site tag (gtag.js) - Google Analytics