這答案?!
假如輸入的num=20,if通過、進(jìn)行while第一次循環(huán):count=1、num=2。因?yàn)?!=0,繼續(xù)第二次count=2、num=0.2此時(shí)應(yīng)該要輸出了"它是個(gè)2位數(shù)",而跳出循環(huán)條件應(yīng)當(dāng)為num==0(若num!=0將繼續(xù)循環(huán))可是此時(shí)的num=0.2,感覺矛矛盾盾的樣子啊!
于是在下進(jìn)行了一些簡單分析,按照上面的推論,正確的答案應(yīng)該將if(num!=0)改為if(num>=1)!in fact,修改后的答案的確通過了。但將原答案復(fù)制以后粘貼卻也可以通過,which puzzled me again!難道當(dāng)num小于1時(shí)系統(tǒng)自動(dòng)視為0?c語言中好像有些默認(rèn)的東西與我的猜測類似,但JAVA中就不明覺來了,估計(jì)應(yīng)該跟前面的那個(gè)int取整有關(guān)。
2015-07-22
沒有前后代碼不太明白你想問的地方。
如果你是想說
int num = 999
num / 1000的結(jié)果等于0這個(gè)問題的話,
因?yàn)閚um和1000都是int型,int / int 仍然是 int型,而int型是不保留小數(shù)位的,所以
999 / 1000 = 0