`
wangming2012
  • 浏览: 141285 次
  • 性别: Icon_minigender_1
  • 来自: 枣阳
社区版块
存档分类
最新评论

不借助第3个变量,实现两个整型变量的交换

    博客分类:
  • Java
阅读更多
public void swap(int a, int b) {
    int t = a;// 使用第三个变量t

    a = b;

    b = t;
}

方法一:借助代数运算
public void swap(int a, int b) {
     a = a + b;

     b = a - b; // 这个时候a=a+b,b=a

     a = a - b; // a = b
}

方法二:借助^异或运算

public void swap(int a, int b) {
     a = a^b;

     b = a^b;

     a = a^b;
}
分享到:
评论

相关推荐

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

    本文将详细讲解如何通过异或运算在Java中不借助第三变量实现两个变量的交换。 首先,理解异或操作符(^)的基本概念。异或运算符在二进制级别上进行操作,如果两个位相同,则结果为0;如果两个位不同,则结果为1。...

    两个书交换最小内存方法

    本篇将详细介绍两种不借助额外变量实现两个整数交换的方法:异或交换法与加减法,并通过C/C++及Java等语言进行示例。 #### 异或交换法 **异或交换法**是一种非常有趣的不使用额外变量来交换两个整数的方法。它基于...

    数据结构-3期(KC002) 两个整数交换.docx

    标题中的“数据结构-3期(KC002) 两个整数交换.docx”指的是一个关于数据结构的学习资料,可能是一份课程的第三阶段作业或教学内容,涉及如何交换两个整数的值。这个过程在编程中是常见的,尤其是在处理数组、列表...

    C语言——借助指针实现数组元素的逆序.zip

    在这个例子中,`reverseArray`函数接收一个数组和它的大小,然后使用两个指针`start`和`end`分别从数组的头和尾开始,通过临时变量`temp`交换它们所指元素的值。`main`函数中展示了如何调用这个函数并打印逆序后的...

    c代码-神奇的交换变量

    例如,有两个整型变量a和b,我们可以创建一个临时变量temp,将a的值存储到temp中,然后将b的值赋给a,最后将temp(原a的值)赋给b。这样就实现了a和b的交换。这种方法直观易懂,但需要额外的存储空间。 然而,有一...

    c代码-变量交换的一种方法

    假设我们有两个整型变量`a`和`b`,它们分别存储了不同的值,我们可能希望在不借助额外空间的情况下交换这两个变量的值。在C语言中,最传统的变量交换方法是使用第三个临时变量。以下是一个简单的例子: ```c int a ...

    c语言程序设计第9章PPT学习教案.pptx

    例如,如果要交换两个变量`a`和`b`的值,可以不借助额外的临时变量,而是通过指针直接操作它们的内存。两种方法分别是:一是通过改变指针变量的指向,二是直接修改目标变量的值。这两种方法在提供的例子中都有展示,...

    第7章--指针练习题答案-华中社《C语言程序设计上机指导与练习》.doc

    通过指针变量间接操作原始变量,实现了不借助额外变量的值交换。 - 第四个编程题是字符串的反转,通过指针操作字符串的字符,实现了从两端向中间交替交换字符,达到字符串翻转的效果。 - 第五个编程题中,`y_max`...

    c语言程序设计PPT教学PPT学习教案.pptx

    例如,交换两个变量`a`和`b`的值,可以不借助额外的临时变量,直接通过指针完成。方法一是通过交换指针变量的指向,方法二是直接修改指针所指向的值。这两种方法都展示了指针的强大功能。 总结来说,C语言中的指针...

    c语言程序设计王勇第8章指针.ppt

    指针可以用来交换变量的值,例如交换两个整数`a`和`b`的值,可以不借助中间变量,直接通过指针操作完成。以下是一些示例代码: ```c // 方法1:使用中间指针变量 int *p1, *p2, a, b; scanf("%d,%d", &a, &b); p1 = ...

    c语言二级知识汇总c语言二级知识汇总.docx

    交换两个变量的值通常需要借助第三个临时变量,但也可以使用不借助第三方变量的方法,虽然这种方法并不总是推荐。 变量的修饰符,如`sizeof()`,可以用来获取变量在内存中占用的字节数。不同类型的变量占据的内存...

    常用java程序实例

    这段代码展示了如何不借助额外变量完成两个整型变量`a`和`b`的值互换。具体实现如下: ```java int a = 2, b = 4; a = a + b; // 此时 a = 6 (2+4) b = a - b; // 此时 b = 2 (6-4) a = a - b; // 最终 a = 4 (6-2)...

    C语言笔试题羊皮卷一52coder.net出品

    因此,该方法可以有效地完成两个变量的值交换而不需借助第三个变量。 ### 格式控制:四舍五入保留小数点后两位数字 **方法一:数学运算** ```c x = (int)(x * 100 + 0.5); x = x / 100; ``` 通过先将浮点数乘以100...

    python笔记.zip

    可以使用`list[i], list[j] = list[j], list[i]`实现不借助额外变量的交换。 这些笔记涵盖了Python的基础操作和核心概念,对于初学者来说是非常有价值的参考资料。通过学习和实践这些知识点,你可以掌握Python编程...

    全国2003年10月高等教育自学考试 高级语言程序设计(一)试 课程代码00342.doc

    4. **变量交换技巧**:在C语言中,可以使用不借助第三个变量的方法来交换两个变量的值,例如选项D所示的算法。 5. **自动型变量存储位置**:自动型变量通常分配在内存的堆栈区中,每次函数调用时分配,调用结束时...

    思维训练(二)如何找到缺失的数

    题目 在一个无序数组中有99个不重复的正整数,范围为1到100,唯独缺少1个1到100中...异或在java语言中也常用来 不借助第三方变量来交换两个数的值 以上为发散思维扩展 对于本题,将所有数异或,得到的结果就是这个奇次整数

    c语言习题辑(谭浩强)答案

    例如,习题4.44要求不借助额外变量交换两个数的值,这通常可以通过异或操作来实现。而4.45题则提醒我们,在使用`scanf`时,应确保格式字符串与输入的数据类型相匹配,以避免数据读取错误。 总的来说,这些习题覆盖...

    ParcelableDemo.rar

    除了直接实现`Parcelable`,还可以借助一些第三方库如`Parcelfield`、`AutoParcel`等简化实现过程。这些库通过代码生成工具自动生成序列化和反序列化的代码,减少手动编写的工作量。 在测试`ParcelableDemo`时,...

    java文档个人整理

    - 在Java中,交换两个整型变量`a`和`b`的值通常需要借助第三个临时变量`temp`。首先,将`a`的值存储到`temp`,然后将`b`的值赋给`a`,最后将`temp`的值赋给`b`。这样`a`和`b`的值就成功互换了。 以上知识点涵盖了...

Global site tag (gtag.js) - Google Analytics