不使用第三個變數交換兩個數值。

2021-04-24 08:36:32 字數 448 閱讀 9026

上班時間,閒來無事,寫個小演算法消遣下。

題目來自某.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...