不借助第三个变量交换两个数值类型变量的值

原文地址:http://blog.csdn.net/web_hwg/article/details/75045689

方法一

最简单的方法是用一个临时变量

var a = 10, b = 20;
var temp = a;
a = b;
b = temp;

方法二

让其中一个变量变成一个与a和b都有关系的值

a = a + b;
b = a - b;
a = a - b;

或者

a = a - b;
b = a + b;
a = b - a;
时间: 2024-10-12 03:59:35

不借助第三个变量交换两个数值类型变量的值的相关文章

不借助第三个变量实现两个变量交换及原理分析

通常的交换两个变量a,b的过程为 var temp; temp=a; a=b; b=temp; 需借助上面的第3个临时变量temp. 无需借助第3个临时变量交换两个变量a,b d的方法: 逻辑运算(异或) 下面的异或运算可以实现a,b的交换,而无需借助第3个临时变量: a = a ^ b; b = a ^ b; a = a ^ b; 这个交换两个变量而无需借助第3个临时变量过程,其实现主要是基于异或运算的如下性质: 1.任意一个变量X与其自身进行异或运算,结果为0,即X^X=0 2.任意一个变量

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

c#中实现两个int变量的数值互换,在借助第三个变量做临时载体的情况下,非常简单. int a = 10; int b = 5; int c ; c = a; a = b; b = c; 如果不借助第三方变量,有几种实现的方法: 1.异或算法(这种方法不借助第三个变量,也不会产生溢出,比较安全,但仅限整数类型) int a = 10; int b = 5; a ^= b; b ^= a; a ^= b; Console.WriteLine("{0} {1}", a, b); 2.直接赋

Java基础知识强化05:不借助第三个变量实现两个变量互换

代码如下: package himi.hebao; /** * 不借助第三个变量实现,两个变量互换 * 这里利用^异或实现两个变量的互换 * @author Administrator * */ public class TestDemo08 { public static void main(String[] args) { int a= 120; int b= 34; a= a^b; //进行变量互换 b= b^a; //进行变量互换 a= a^b; //进行变量互换 System.out.

不借助第三个变量实现两个变量交换的思考

1) 算术运算简单来说,就是通过+和-运算来实现.代码如下: int a,b; a=10;b=12; a=b-a;   //a=2;b=12 b=b-a;   //a=2;b=10 a=b+a;   //a=12;b=10 通过以上运算,a和b中的值就进行了交换.表面上看起来很简单,但是不容易想到,尤其是在习惯标准算法之后. 此算法与标准算法相比,多了三个计算的过程,但是没有借助临时变量.(以下称为算术算法) 2) 指针操作对指针的操作实际上进行的是整数运算.比如:两个int指针相减得到一个整数

不借助第三个变量交换a,b两个变量值

从一个面试题说起... 一个很经典的答案是通过异或来解决 a=a^b; b=a^b; a=a^b; 关键字 [ "异或", "逻辑运算符", "乔治·布尔", "香农" ] 先决条件 0为假,1为真 插曲>>>如果读到"0为假,1为真",心底肯定略过了,这谁都知道的啊... 但是如果是写出来,但是找不到出处.即使常识也不太肯定了... "^":对应逻辑运算异或(XOR)

PHP中不用第三个变量交换两个变量的值

相信大家在PHP面试或者学习中经常会遇到这个问题就是“不用第三个变量来交换两个变量的值”,今天正对这个问题来讨论一下: 第一种方法:首先会想到的 这种方法简单可行,顺利的交换了两个变量的值. 第二种方法呢,稍加思考我们就会用到PHP中的函数来实现 第三种方法呢,我们来采用PHP中提供各种字符串分割函数来实现. 简单的题目不同的思想就会有不同的解法,期待更多的答案.

交换两个变量以及不用第三个变量交换两个变量

这个可能网上一搜一大把一大把的,可是今天我看到了一个新的写法,所以就写这篇文章记录一下,不不知道百度有没有,没去搜索! 方法1:这是最简单,也是最常用的一个方法! int n1 = 10, n2 = 20; int tmp = n1; n1 = n2; n2 = tmp; Console.WriteLine("n1={0},n2={1}", n1, n2); Console.ReadKey(); 方法2:算术运算 //交换两个变量,不使用第三个变量 int n1 = 10, n2 =

不使用第三个变量交换两个变量的值

交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换. 下面给出几种不使用第三个变量的办法: 1.利用运算交换两个变量值 a = b - a; b = b - a; a = b + a; 2.位运算 通过异或运算来交换值 a=a^b; b=a^b; a=a^b; 3.交换指针地址

不准引入第三个变量交换两个数的值

int x=1; int y=3; x=x+y; y=x-y; x=x-y; 如果 int x=1000000; int y=3000000; x=x^y; y=x^y; x=x^y; 一个数据异或两次得到数据本身 例如5^10^10的值还是5. 这个技术还可以用在加密解密里面.