面試之變量值交換

交換兩個變量:例如num1=5,num2=6→num1=6,num=5
怎麼樣?是不是覺得灰常簡單,你是不是用下面的方法做的:
int num1=5;
int num2=6;
int temp=num1;
num1=num2;
num2=temp;
Console.WriteLine("num1={0},num2={1}",num1,num2);

好吧!你贏了!你做的非常對!
就就是所謂的值傳遞 聲明一箇中間變量temp!沒有可說的!大家都懂的!


接着我們來看下面這個比較犀利的出題人:

面試題:

不允許聲明任何中間變量來交換兩個變量的值:例如num1=5,num2=6→num1=6,num=5

汗~~~~~!!搞什麼搞啊!你這不是難爲我嘛!!一般遇到這樣的情況我們都要打破常規了!

不賣關子了,下面我們來看一下它的解決辦法吧:
int num1=5;
int num2=6;
num1+=num2;
num2=num1-num2;
num1=num1-num2;
Console.WriteLine("num1={0},num2={1}",num1,num2);

相信你一定有所收穫吧!程序也簡單易懂!!!獻給那些還在面試的程序員!!希望你們找個好工作!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章