<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 9  文章 - 21  trackbacks - 0
    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類(9)

    隨筆檔案(9)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    第 1 天的問題

    下面的方法意圖確定它那唯一的參數是否是一個奇數。這個方法能夠正確運轉嗎?

        public static boolean odd(int number) {
            return number % 2 == 1;
        }
    
    

    第 1 天問題的解答

    有1/4的情況下,答案是錯誤的。比如:odd(-3) 表達式得到的結果就是 fasle。對于所有的負奇數,上面的方法都會得到錯誤的結果。

    原因

    問題的原因在于求余操作符(%),在Java中該操作符被定義為

    對于所有的 int 數值 a 和所有的非零 int 數值 b,都滿足下面的恒等式
    (a / b) * b + (a % b) == a

    換句話說,(a % b) = a - (a / b) * b

    由數學推理運算可知,a % b 的符號有操作數a決定(要么為0,要么和a一致)。也就是說, -5 % 3 => -2, -5 % -3 => -2。

    因此,對于所有的負奇數n, n % 2 => -1。問題中的方法自然有問題啦。

    解決辦法

    要判斷一個整數是否為奇數的解決辦法有兩種。

        public static boolean odd(int number) {
            return number % 2 != 0;
        }
    
    
        /**
         * 這種方法的性能更好。
         */
        public static boolean odd(int number) {
            return (number & 1) != 0;
        }
    
    

    總結

    無論你何時使用到了取余操作符,都要考慮到操作數和結果的符號。

    該操作符的行為在其操作數非負時是一目了然的,但是當一個或兩個操作數都是負數時,它的行為就不那么顯而易見了。


    今天的問題

    請考慮下面這段話所描述的問題:

    小明在超市購買了一個價值¥1.10的東西,但是他錢包中只有兩元一張的鈔票。如果他用一張兩元的鈔票支付,那么應該找給他多少零錢呢?

    下面是一個試圖解決上述問題的程序,它會打印出什么呢?

    
    public class Change{
        public static void main(String args[]){
            System.out.println(2.00 - 1.10);
        }
    }
    
    
    posted on 2008-05-16 21:38 李四飛刀 閱讀(1312) 評論(2)  編輯  收藏 所屬分類: 每日一題

    FeedBack:
    # re: 第 2 天: 解答 -- 判斷是否為奇數, 問題 -- 找零錢 2008-05-16 21:55 Edward's
    呵呵,1天1分鐘  回復  更多評論
      
    # re: 第 2 天: 解答 -- 判斷是否為奇數, 問題 -- 找零錢 2008-05-16 22:37 lvq810
    Java解惑  回復  更多評論
      
    主站蜘蛛池模板: 无码人妻久久一区二区三区免费 | 在线观看免费视频资源| 久草免费福利资源站| 亚洲精品尤物yw在线影院| 亚洲日本在线观看| 99久久国产精品免费一区二区| 国产亚洲欧洲Aⅴ综合一区| 亚洲视频日韩视频| 人碰人碰人成人免费视频| 亚洲国产成人爱av在线播放 | 亚洲一级毛片免费看| 无码国产精品一区二区免费式直播 | 99久久人妻精品免费二区| 国产免费一区二区三区VR| 欧洲亚洲国产清在高| a毛看片免费观看视频| 亚洲妇熟XXXX妇色黄| 最近免费视频中文字幕大全| 亚洲午夜一区二区电影院| 91在线视频免费看| 亚洲av无码成人影院一区| 亚洲色图综合在线| 亚洲精品国产高清在线观看| 国产真人无遮挡作爱免费视频| 相泽南亚洲一区二区在线播放| 亚洲精品综合久久| 18以下岁毛片在免费播放| 亚洲色精品VR一区区三区| 亚洲精品免费在线| 亚洲人成网站免费播放| 亚洲精品成a人在线观看| 无码国产精品一区二区免费式芒果 | 97国免费在线视频| 亚洲成人福利在线| 免费看搞黄视频网站| 亚洲国产日韩在线成人蜜芽| 国产精品深夜福利免费观看| 你懂的免费在线观看| 亚洲人成电影网站久久| 亚洲国产专区一区| 18禁美女黄网站色大片免费观看|