有志者、事竟成,破釜沉舟,百百二秦关终属楚;苦心人、天不负,卧薪尝胆,三千越甲可吞吴。

拂晓犬吠

学习中遇到困难是很正常的事情,不要苦恼,不要气馁,恰恰相反,应该兴奋,因为又学到知识了,需要不断提高自己应对问题和解决问题的能力和信心。

0726一简单的面试题:在不使用第三变量的情况下交换两个变量的值

在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的

通常我们的做法

int a=10;  
int b=15;  
int t;  
t=a; a=b; b=t;

一般情况下碰到交换变量值的问题,都应采用此算法(称为标准算法)

但是,在不使用第三方变量的情况下,如何实现呢?

算术运算,有其他两种方式,这三种目前我都不明白,姑且说上这个算术法的流程吧。
简单来说,就是通过普通的+和-运算来实现。

int a=10;  
int b=12;  
a=b-a; //a=2;b=12  
b=b-a; //a=2;b=10  
a=b+a; //a=10;b=10  
通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到。  
它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。(不懂,不懂,先应付面试)

posted @ 2016-07-26 17:51  ID拂晓犬吠  阅读(186)  评论(0)    收藏  举报