謎題1 奇數性

2021-09-25 12:43:05 字數 671 閱讀 6772

isodd方法用來判斷輸入引數i是否為奇數,結果會怎樣呢?

public static boolean isodd(int i)

考察的是%(取餘)運算子的使用,該操作符被定義為對於所

有的 int 數值 a 和所有的非零 int 數值 b,都滿足下面的恒等式:

(a / b) * b + (a % b) == a ;

當isodd方法傳入的引數是負奇數時,返回依然是false,但負奇數也是奇數,因此上述**存在缺陷,因此在使用時,通常改為如下更符合該操作符的定義:

public static boolean isodd(int i)

另外取餘和取模還有很多不同之處

取餘:rem(5,2) = 1

rem(5,-2) = 1

rem(-5,2) = -1

rem(-5,-2) = -1

取模:mod(5,2) = 1

mod(5,-2) = -1

mod(-5,2) = 1

mod(-5,-2) = -1

綜上來看二者卻有不同,取餘結果的正負與被除數相同,取模結果的正負與除數相同

還有當是浮點型時,先四捨五入再取餘

例如:17%5.6 = 5;

還有一種情況例如:10%13 = 10;

仔細研究發現乙個小小運算子都如此的奇妙。。

奇數性之謎

關於奇數,我們平常一般會使用如下方法去判斷 public static boolean isodd int i 但是這樣的 對於正整數來說是ok的,但是對於負整數來說是不行的。因為返回將會是負整數。例如 3 2 1 總結一句話 上述判斷方式是不全面的 public static boolean is...

JAVA解惑 奇數性

問題 下述方法判斷乙個整數是否可行 public static boolean isodd int i 解惑 當i為乙個非負整數時,這種方法是可取的,但是當i為乙個負整數時,該方法就會出錯了。原因是i 2的運算,假如結果是非0的,那麼結果的符號與i的符號是一樣的,即i為負,則結果為負,i為正,則結果...

謎題1 財政年度表

開始吧。第乙個謎題讓我了解了上資料庫課時候一筆帶過的知識 還不錯 1.讓我們了解了 date的用法。每個dbms的date用法都是不一樣的,我用的是sql server,照著書上的打了後發現不對。鬱悶。比如extract year from date 查了下發現sql server根本沒有。函式描述...