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

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

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

    碼農(nóng)往事
    我的代碼為什么這么丑?一定是因為我長的不好看
    posts - 29,comments - 86,trackbacks - 0
    說有一個屋里有多個桌子,有多個人? 如果3個人一桌,多2個人。 如果5個人一桌,多4個人。 如果7個人一桌,多6個人。 如果9個人一桌,多8個人。 如果11個人一桌,正好。 請問這屋里多少人?
    最近比較閑,逛論壇看到隨手做了.
    最小答案是
    代碼如下:
        public static void main(String[] args) {
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                long value = i * 11;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    System.out.println("i:" + i + ",value:" + value);
                    break;
                }
            }
        }
    計算出來的結(jié)果是:i:229,value:2519
    轉(zhuǎn)念一想,結(jié)果可能不止一個,于是換個寫法:
        public static void main(String[] args) {
            int count = 0;
            long value;
            long valueMax = 0;
            long iMax = 0;
            long pram = 11;
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                value = i * pram;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    count++;
                    if (iMax < i) {
                        iMax = i;
                    }
                    if (valueMax < value) {
                        valueMax = value;
                    }
                }
            }
            System.out.println("count:" + count);
            System.out.println("iMax:" + iMax);
            System.out.println("valueMax:" + valueMax);
        }
    當i在Integer.MAX_VALUE范圍內(nèi)的計算結(jié)果:
    count:6817408
    iMax:2147483434
    valueMax:23622317774
    這邊遇到了一個問題,當代碼中的pram聲明為int類型時計算的結(jié)果會與聲明為long類型發(fā)生極大偏差,貌似是因為Java乘法對于int類型越界處理的問題,具體原因待查.
    如果你用如下代碼執(zhí)行:
     int count = 0;
            for (int i = 0; i < Integer.MAX_VALUE; i++) {
                long value = i * 11;
                if (value % 3 == 2 && value % 5 == 4 && value % 7 == 6 && value % 9 == 8) {
                    System.out.println("i:" + i + ",value:" + value);
                    count++;
                }
            }
            System.out.println("count:" + count);
    最后數(shù)行看到的結(jié)果是這樣:
    i:2147475704,value:2147396264
    i:2147476019,value:2147399729
    i:2147476334,value:2147403194
    i:2147476649,value:2147406659
    i:2147476964,value:2147410124
    i:2147477279,value:2147413589
    i:2147477594,value:2147417054
    i:2147477909,value:2147420519
    i:2147478224,value:2147423984
    i:2147478539,value:2147427449
    i:2147478854,value:2147430914
    i:2147479169,value:2147434379
    i:2147479484,value:2147437844
    i:2147479799,value:2147441309
    i:2147480114,value:2147444774
    i:2147480429,value:2147448239
    i:2147480744,value:2147451704
    i:2147481059,value:2147455169
    i:2147481374,value:2147458634
    i:2147481689,value:2147462099
    i:2147482004,value:2147465564
    i:2147482319,value:2147469029
    i:2147482634,value:2147472494
    i:2147482949,value:2147475959
    i:2147483264,value:2147479424
    i:2147483579,value:2147482889
    count:3718586
    問題產(chǎn)生的原因應(yīng)該是Java對于int的乘法結(jié)果大于上限的情況,自動截取了前10位.
    -----------------------------------------------------------------------------------------------------------------之前的理解不正確.

    根據(jù)Java的基礎(chǔ)類型的變窄轉(zhuǎn)換(Narrowing primitive conversion)規(guī)則,對于運算結(jié)果超出int范圍的,將超出部分全部丟棄,只保留低32位的.
    posted on 2016-01-25 17:16 Jimi 閱讀(3412) 評論(0)  編輯  收藏 所屬分類: Java生活隨筆

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 精品亚洲成在人线AV无码| 人人爽人人爽人人片A免费| 亚洲一区二区三区AV无码| 成人黄页网站免费观看大全| 鲁丝片一区二区三区免费| 免费国产va在线观看| 精品亚洲AV无码一区二区 | 日本亚洲色大成网站www久久| 亚洲无线观看国产精品| 可以免费观看一级毛片黄a| 九九精品免费视频| 日韩精品极品视频在线观看免费| 最新亚洲人成无码网站| 亚洲欧美日韩中文字幕一区二区三区| 久久精品国产亚洲av水果派| 亚洲乱码无码永久不卡在线| 亚洲精品美女久久久久99小说| 暖暖免费高清日本中文| 天天天欲色欲色WWW免费| 大地资源免费更新在线播放| 国产成人免费午夜在线观看 | 亚洲AV日韩AV天堂一区二区三区| 国产精品亚洲玖玖玖在线观看 | 亚洲色最新高清av网站| 亚洲一级片在线播放| 亚洲韩国在线一卡二卡| 久久精品国产亚洲av麻豆色欲| 久久精品国产99精品国产亚洲性色| 亚洲日产韩国一二三四区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 麻豆最新国产剧情AV原创免费| 免费人成在线观看网站品爱网| 免费av一区二区三区| 久久99青青精品免费观看| 无码成A毛片免费| 99久久免费观看| 69xx免费观看视频| a毛片基地免费全部视频| aa级一级天堂片免费观看| 成人免费无码大片a毛片软件 | 亚洲视频免费一区|