不使用中间变量,交换int型的 a, b两个变量的值

(function(){
   var a = 10, b = 2;
   a = a + b;
   b = a - b;
   a = a - b;
   alert(a+" "+b);
})();

(function(){
   var a = 10,b=2;
   a = a^b;
   b = b^a;
   a = a ^b;
   alert(a+" "+b);
})();

(function(){
   var a =10,b =2 ;
   a=[a,b];
   b=a[0];
   a=a[1];
   alert(a+" "+b)
})();
//简化一下:
(function(){
   var a =10,b =2 ;
   a=[b,b=a][0];
   alert(a+" "+b)
})();

(function(){
  var a = 10,b = 2;
  a = {a : b, b : a};
  b = a.b;
  a = a.a;
  alert(a+" "+b);
})();

(function(){
  var a = 10,b = 2;
  a=(function(){
    try {
      return b;
    }
    finally {
      b = a;
    } 
  })();
  alert(a+" "+b);
})();

(function(){
   var a = 10,b = 2;
   eval("a="+b+";b="+a);
   alert(a+" "+b);
})();

(function(){
   var a =10,b =2 ;
   a = b+(b = a)*0;
   alert(a+" "+b)
})(); 

(function(){
   var a =10,b =2 ;
   a = (a + b) - (b = a); 
   alert(a+" "+b)
})();
时间: 2024-11-01 13:45:50

不使用中间变量,交换int型的 a, b两个变量的值的相关文章

JAVA不用临时变量交换两个变量的值

交换两个变量的值,不适用临时变量 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6 } 7 } 交换两变量的值 加减实现交换 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6

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

1.这需要进行位操作,必较麻烦的在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的.通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换.代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用.在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法). 上面的算

由[交换两个变量的值问题]理解程序的时空复杂度

由一个编程经典问题,交换两个变量的值入手,理解程序的时空复杂度(以下均使用PHP代码演示问题的解决方法)解决问题的方法一:    1.方法文字描述:使用一个中间变量temp,实现两个变量值的互换    2.实现的具体代码: <?php  //声明两个变量$a,$b  $a = $_GET['a'];   $b = $_GET['b'];  //打印没有互换前,$a和$b var_dump("未替换前:a={$a} and b={$b}"); //使用中间变量$temp实现$a和$

不用临时变量交换两个变量的值——函数对象

// 不使用中间临时变量,交换两对象的值 ,废话少说,直接上代码 // Virtual.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <memory> #include <algorithm> #include <set> #include <vector> #include <map> #include <stri

交换两个变量的值,不使用第三个变量(两种方法)

//交换两个变量的值,不使用第三个变量. //有两种解法, 一种用算术算法, 一种用^(异或) //异或:相同为0,不同为1.相当于减法. #include <stdio.h> int main() { int a = 8; int b = 9; printf("初始状态:a = %d, b = %d\n",a,b); a = a + b; b = a - b; a = a - b; printf("算数交换:a = %d, b = %d\n",a,b)

PHP 不使用新变量而交换现有两个变量的值

正常是交换两个变量的值应该使用中间变量: function swap($a, $b){ $temp = $a; $a = $b; $b = $temp; } 1.这个方法很容易想到,但是只限于交换数值类型的变量:function swap (&$a,&$b){ $a = $a+$b; $b = $a-$b; $a = $a-$b;} 2.这方法是语言结构,想法很奇妙: list($a, $b) = array($b, $a); 注:list — 把数组中的值赋给一些变量 3.通过数组函数a

【编程题】不引入第三个变量,而交换两个变量的值

不引入第三个变量,而交换两个变量的值 方法一:算术运算 1 int a,b; 2 a=10;b=12; 3 a=b-a; //a=2;b=12 4 b=b-a; //a=2;b=10 5 a=a+b; //a=12;b=10 它的原理:把a,b看做数轴上的两个点. 第一句"a=b-a"求出了ab两点之间的距离,并且将其保存在a中: 第二句"b=b-a"求出了a到原点的距离(b到原点的距离减去ab两点距离),并且将其保存在b中: 第三句"a=b+a"

python学习笔记(八)函数return多个值,列表推导式和交换两个变量的值

函数return多个值: 补充知识点:写代码得到时候少用全局变量: 1.不安全 2.会一直占着内存不释放 函数多个return值,那么会把这几个return的值都放在一个元组里面,然后返回 1 def hello(a,b,c,d): 2 return a,b,c,d 3 res=hello('ybq','ede','rfv','deq') 4 print(res)#('ybq', 'ede', 'dede', 'deq') 列表推导式: 1 #列表推导式 2 nums=[0,1,3,4,5,6,

C语言:指针实现交换两个变量的值

用指针交换两个变量的值(10分) 题目内容: 用指针交换两个变量的值 主函数参考: int main( ) { int a,b; scanf("%d%d",&a,&b); swap(&a,&b); printf("%d %d",a,b); return 0; } 输入格式: 两个变量 输出格式: 两个变量 输入样例: 5 8 输出样例: 8 5 code #include "stdio.h" //交换两个变量的值