上班時間,閒來無事,寫個小演算法消遣下。
題目來自某.net面試題集錦。相信很多看官也耳熟能詳。也頗為簡單,不會者學,會者繞道。
題目如下:不用第三個變數,交換兩個數值。
心得:1. 時刻注意現在的i,j是最原始的i,j的什麼組合。
2. out 原來必須要初始化才能用地。
class program
, j = ", i, j);
int ii, jj;
program.swap(i, j, out ii, out jj);
console.writeline("ii = , jj = ", ii, jj);
console.read();
}public
static
void swap(int i, int j, out
int ii, out
int jj)
兩個數交換,不使用第三個空間
昨天在乙個技術群中,一大堆人討論 兩個數交換,不使用第三個空間 這個問題。當時我給了個答案。a a b b a b a a b 不過後來發現有資料溢位的問題,比如函式void changeab int a,int b 如果a int.maxvalue 10,30 int.maxvalue 21474...
交換兩個變數的值,不使用第三個變數
通常我們的做法是 尤其是在學習階段 定義乙個新的變數,借助它完成交換。如下 int a,b a 10 b 15 int t t a a b b t 這種演算法易於理解,特別適合幫助初學者了解電腦程式的特點,是賦值語句的經典應用。在實際軟體開發當中,此演算法簡單明瞭,不會產生歧義,便於程式設計師之間的...
兩個數互換,不使用第三個空間
昨天在乙個技術群中,一大堆人討論 兩個數交換,不使用第三個空間 這個問題。當時我給了個答案。a a b b a b a a b 不過後來發現有資料溢位的問題,比如函式void changeab int a,int b 如果a int.maxvalue 10,30 int.maxvalue 21474...