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

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

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

    碼農(nóng)往事
    我的代碼為什么這么丑?一定是因?yàn)槲议L的不好看
    posts - 29,comments - 86,trackbacks - 0
    說有一個(gè)屋里有多個(gè)桌子,有多個(gè)人? 如果3個(gè)人一桌,多2個(gè)人。 如果5個(gè)人一桌,多4個(gè)人。 如果7個(gè)人一桌,多6個(gè)人。 如果9個(gè)人一桌,多8個(gè)人。 如果11個(gè)人一桌,正好。 請問這屋里多少人?
    最近比較閑,逛論壇看到隨手做了.
    最小答案是
    代碼如下:
        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;
                }
            }
        }
    計(jì)算出來的結(jié)果是:i:229,value:2519
    轉(zhuǎn)念一想,結(jié)果可能不止一個(gè),于是換個(gè)寫法:
        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);
        }
    當(dāng)i在Integer.MAX_VALUE范圍內(nèi)的計(jì)算結(jié)果:
    count:6817408
    iMax:2147483434
    valueMax:23622317774
    這邊遇到了一個(gè)問題,當(dāng)代碼中的pram聲明為int類型時(shí)計(jì)算的結(jié)果會(huì)與聲明為long類型發(fā)生極大偏差,貌似是因?yàn)镴ava乘法對(duì)于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對(duì)于int的乘法結(jié)果大于上限的情況,自動(dòng)截取了前10位.
    -----------------------------------------------------------------------------------------------------------------之前的理解不正確.

    根據(jù)Java的基礎(chǔ)類型的變窄轉(zhuǎn)換(Narrowing primitive conversion)規(guī)則,對(duì)于運(yùn)算結(jié)果超出int范圍的,將超出部分全部丟棄,只保留低32位的.
    posted @ 2016-01-25 17:16 Jimi 閱讀(3412) | 評(píng)論 (0)編輯 收藏
    主站蜘蛛池模板: 亚洲va中文字幕无码久久| 免费人成视频在线观看视频| 亚洲日本va中文字幕久久| 色哟哟国产精品免费观看| heyzo亚洲精品日韩| 九一在线完整视频免费观看| 亚洲男人的天堂一区二区| 思思久久99热免费精品6| 亚洲成av人片天堂网老年人| 一区二区三区免费电影| 337p日本欧洲亚洲大胆裸体艺术| 精品久久久久久无码免费| 亚洲精品乱码久久久久66| 亚洲免费视频网站| 亚洲日本在线播放| 四虎国产精品免费久久| 在线亚洲高清揄拍自拍一品区| 免费无码黄十八禁网站在线观看| 四虎亚洲精品高清在线观看| 国产精品黄页在线播放免费| 特级毛片爽www免费版| 国产亚洲福利精品一区| 在线免费中文字幕| 日韩亚洲不卡在线视频中文字幕在线观看| 成人免费无码大片a毛片| 色吊丝性永久免费看码 | 国产亚洲av片在线观看播放| 无码av免费一区二区三区试看| 亚洲国产精品综合福利专区| 成人性生交大片免费看无遮挡| 国产亚洲视频在线观看网址| 国产亚洲人成网站在线观看| 无码av免费一区二区三区试看| 国产成人精品日本亚洲专一区| 又大又粗又爽a级毛片免费看| 大地资源中文在线观看免费版| 亚洲美女色在线欧洲美女| 日韩免费高清视频网站| 手机看片国产免费永久| 亚洲人6666成人观看| 亚洲AV无码专区日韩|