概要 本文主要描述,如何不使用中间值,将两个变量的值进行交换. 一.普通做法 var a = 1, b = 2, tmp; tmp = a; a = b; b = tmp; 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存.这样的做法直观,易懂.但是,会增加内存的使用. 二.算术运算 var a = 1, b = 2; a = a + b; // a = 3, b = 2 b = a - b; // a = 3, b = 1 a = a - b; // a = 2, b =…
package test; public class Test { public static void main(String[] args) { int a, b; a = 10; b = 12; System.out.println(a + " " + b); /* * 借助第三方变量 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用. * 在实际软件开发…
学习任何语言基础时,两个数值得交换是必须掌握的,下面是3种不同的方式(c语言) 方法一:利用数学的计算技巧 #include <stdio.h> int main() { , b = ; printf("交换前a=%d, b=%d\n", a, b); a = a - b; b = a + b; a = b - a; printf("交换后a=%d, b=%d\n", a, b); ; } 这种方法的写法不唯一,对于a,b:只要先给其中一个先赋予a-b,…
利用一个小技巧,一个整数a在异或另一个整数b两次以后所得的值还是整数a. 具体的过程我们可以自己找两个整数以二进制的形式自己在纸上画一下他们的异或过程.(异或的运算符号为"^") 比如: 下面给出交换两个整数位置的代码,不需要临时变量temp. public class Aa { public static void main(String[] args) { int a = 3, b = 5; System.out.println("before swap:" +…