題目連結:https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=30758
看不到內容請點這:https://hackmd.io/rm3s4cyYRs22sofZh3ZaCg#%E8%80%83%E8%A9%A6%E6%B8%AC%E9%A9%97-java
搥使題目驚坐起,笑問這題怎麼寫 可憐夜半虛前席,不問蒼天問教授 估狗仍舊不知曉,鍵盤滑鼠仍默矣 不為浮雲遮望眼,只緣身在最高層 大難臨頭往下推,小事一樁自己來 周遭都說很容易,四面楚歌要搞啥 甭要再問為什麼,因為說了你會怕
2018年1月4日 星期四
ITSA線上程式競賽基礎題目-題目33. 一整數序列所含之整數個數及平均值
2017年11月26日 星期日
兩值互換
在C++
int x=3,y=4;
x^=y^=x^=y;
會讓兩變數的值交換;
即x=4,y=3;
在Java
int x=3,y=4;
x^=y^=x^=y;
卻僅能一位換過去而已;
即x=4;
而另一個y呢?
卻會變成y=7;(咦?
int x=3,y=4;
x^=y^=x^=y;
會讓兩變數的值交換;
即x=4,y=3;
在Java
int x=3,y=4;
x^=y^=x^=y;
卻僅能一位換過去而已;
即x=4;
而另一個y呢?
卻會變成y=7;(咦?
這是基於兩者計算順序上的不同導致的結果~~
C++是整個"由右往左";......<=
Java是整個"由左往右";.....=>
C++是整個"由右往左";......<=
Java是整個"由左往右";.....=>
花點時間實際自己做一次,就會理解了~
註:
^=
是將兩數進行 XOR 運算(^);
並且將結果存到左方的變數(=);
^=
是將兩數進行 XOR 運算(^);
並且將結果存到左方的變數(=);
XOR
翻譯為"兩數在二進位下,逐一比對同位置的位元;
是否 \\不一樣\\ ;
另一解釋或記法為,[相同則0,相異則1];
翻譯為"兩數在二進位下,逐一比對同位置的位元;
是否 \\不一樣\\ ;
另一解釋或記法為,[相同則0,相異則1];
訂閱:
文章 (Atom)