最˜q‘比较闲åQŒé€›è®ºå›çœ‹åˆ°é𿉋åšäº†ï¼Ž
最ž®ç”案是
代ç 如下:
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;
}
}
}
计算出æ¥çš„结果是åQši:229,value:2519
转念一惻I¼Œ¾l“æžœå¯èƒ½ä¸æ¢ä¸€ä¸ªï¼ŒäºŽæ˜¯æ¢ä¸ªå†™æ³•åQ?br />
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范围内的计算¾l“æžœåQ?br />
count:6817408
iMax:2147483434
valueMax:23622317774
˜q™è¾¹é‡åˆ°äº†ä¸€ä¸ªé—®é¢˜ï¼Œå½“代ç ä¸çš„pram声明为int¾cÕdž‹æ—¶è®¡½Ž—çš„¾l“果会与声明为long¾cÕdž‹å‘生æžå¤§åå·®åQŒè²Œä¼¼æ˜¯å› 䨓Java乘法对于int¾cÕdž‹‘Šç•Œå¤„ç†çš„é—®é¢˜ï¼Œå…·ä½“åŽŸå› å¾…æŸ¥åQ?br />
å¦‚æžœä½ ç”¨å¦‚ä¸‹ä»£ç æ‰§è¡ŒåQ?br />
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);
æœ€åŽæ•°è¡Œçœ‹åˆ°çš„¾l“æžœæ˜¯è¿™æ øP¼š
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
é—®é¢˜äº§ç”Ÿçš„åŽŸå› åº”è¯¥æ˜¯Java对于int的乘法结果大于上é™çš„æƒ…况åQŒè‡ªåŠ¨æˆªå–了å‰?0ä½ï¼Ž
-----------------------------------------------------------------------------------------------------------------之å‰çš„ç†è§£ä¸æ£ç¡®åQ?br />
æ ÒŽ®Java的基¼‹€¾cÕdž‹çš„嘽H„è{æ¢ï¼ˆNarrowing primitive conversionåQ‰è§„则,对于˜qç®—¾l“æžœ‘…出int范围的,ž®†è¶…出部分全部丢弃,åªä¿ç•™ä½ŽåQ“ï¼’ä½çš„åQ?img src ="http://www.aygfsteel.com/rockblue1988/aggbug/429203.html" width = "1" height = "1" />
]]>