在上一篇博客中我给大家分享了一个有关最小公倍数和最大公约数的算法,我特别提到了交换值的问题。
现在就给大家我们一起来吃个栗子:
int m = 10;
int n = 15;
int temp = m;
m = n;
n = temp;
System.out.println(m);
System.out.println(n);
结果:
没错在上面有一个中间变量,用于作为m和n交换值的中转。
但是上面这个方法我认为就算你是大一新生,或者你刚刚开始接触编程,只要有点C或者C++的基础。都可以想的出来的。
下面这个就是一个面试题了,不用中间变量怎么交换他们两个的值?
来吧继续吃栗子了。
int m = 10;
int n = 15;
m = m+n;
n = m-n;
m = m-n;
System.out.println(m);
System.out.println(n);
这里结果可以看到和上面完全一致:
也许你会想这么简单吗,感觉很低端的样子,但是我就是实现了呀,这就是答案呀。大家不烦自己试一试。