方法一:使用中间值保存。
public static void temp(){ int x = 10; int y = 20; System.out.format("交换两数之前:x:%d,y:%d%n",x,y); //定义中间值 int temp; //实现交换 temp = x; x = y; y = temp; System.out.format("交换两数之后:x:%d,y:%d%n",x,y); }
实验结果:
方法二:使用数学中加减运算,巧妙实现。
public static void mathPlus(){ int x = 10; int y = 20; System.out.format("交换两数之前:x:%d,y:%d%n",x,y); //实现交换 x = x+y; y = x-y; x = x-y; System.out.format("交换两数之后:x:%d,y:%d%n",x,y); }
方法三:使用数学中乘除运算,巧妙实现。
public static void mathMult(){ int x = 10; int y = 20; System.out.format("交换两数之前:x:%d,y:%d%n",x,y); //实现交换 x = x*y; y = x/y; x = x/y; System.out.format("交换两数之后:x:%d,y:%d%n",x,y); }
方法四:使用位移运算中异或运算,巧妙实现。
public static void displacement(){ int x = 10; int y = 20; System.out.format("交换两数之前:x:%d,y:%d%n",x,y); //实现交换 x = x^y; y = x^y; x = x^y; System.out.format("交换两数之后:x:%d,y:%d%n",x,y); }
即使有很多简单的程序,但也会有很多不同的方式解决这个问题,就需要我们去发掘,去学习。我们一起学习进步。。。。。。