标签:编写 font 赋值 思考 rgs div log int col
相信大家刚刚学习java多多少少都会写一些java的基础编程来练练手感,我也不例外!今天想和大家分享一下我最近所接触到的比较有趣的java小编程!
已知a已被赋值,b已被赋值,请编写java程序实现a与b值的互换:
其实这道题挺经典的,无论是C语言也好,java也好,都把这道题作为入门的小作业,它的解法如下:
1 public class Demo{ 2 public static void main(String[] args){ 3 int a=1;//为a赋值 4 int b=2;//为b赋值 5 int temp=a;//新的变量 6 a=b; 7 b=temp;//a与b互换 8 } 9 }
解答这道题的方法通常都是初始化一个新的变量,以该变量作为中间变量,来防止a或者b被覆盖,通过这样的方法来解这道题。那么,除了这种常规的解题方法还有别的解题方法么?
答案是肯定的,下面我会为大家再列举两种解题方法,有其他解题的方法也欢迎大家补充!
1.加减法
public class Demo { public static void main(String[] arg) { int a = 1; int b = 2; a = b-a; b = b-a; a = b+a; } }
2.异或法
public class Demo {
public static void main(String[] arg) {
int a = 1;
int b = 2;
a = a^b;
b = a^b;
a = a^b;
}
}
其实,不管是加减法也好,异或法也好,这两种解题方法都是我们解题时思维的延伸,也是我们思维逻辑的一种改变,毕竟java就是一堆积木,所有的一切都是通过一步一步的组合来完成的,而完成品是什么样的取决于我们的思考方式和想象力,所以千万不要只局限于一种解法,要勇于去扩展自己的思维,改变自己的逻辑,才能发现更有趣的世界!
标签:编写 font 赋值 思考 rgs div log int col
原文地址:http://www.cnblogs.com/ziyihuang/p/7678470.html