面試題中自增自減類型題目的解題技巧


    在面試中,我們經常被問有關於自增自減的題目,這樣的題目簡單易懂,便於檢驗面試者的編程基本功,樓主在百度實習面試中就被問到。現在總結一下解題技巧:


    對於以下,有int x = 5, y = 6, z;

    題目1:z = ++x + y++;

    題目2:z = ++x + x++;

    題目3:x = ++x + x++;


    對於上面的三道題目,我們下面一一解答。使用的技巧就是:把原始計算式轉化成多個、有先後計算順序的、小的計算式,然後帶入變量的值,進行求解。記住:同一優先級的運算符的計算順序是從右往左。

    Q1:z = ++x + y++;  可以轉化爲:

                  x = x +1;

                  z = x + y;

                  y = y + 1;

    帶入x = 5, y = 6,可得x = 6; z = 12; y = 7; 


    Q2:z = ++x + x++;  可以轉化爲:

                  x = x +1;

                  z = x + x;

                  x = x + 1;

    帶入x = 5,可得x = 6; z = 6+6=12; x = 7;   故x=7,z=12;


    Q3:x = ++x + x++;  可以轉化爲:

                  x = x +1;

                  x = x + x;

                  x = x + 1;

    帶入x = 5,可得x = 5+1=6; x = 6+6=12; x = 12+1=13;   故x=13。


    注意:一定要等把原始公式全部轉換成小公式之後,再帶入變量值,切不可中途帶入變量值!


    Q4:z = x > y ? ++x : y++; 

    條件運算符有短路的原則,由於x>y是假的,所以冒號前面的++x是不運行的,即使它是前++,我們直接運行y++,但是y是後++,所以z = 6, y = y+1=7.




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