一般對于數字長度的判斷,我們習慣上是采用模除的方法。
使用遞歸的思想得到結果。大智慧經典版6.0下載
以下是jdk源碼中實現的思路:
-----------------------------------------------------------------------------------------
final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
99999999, 999999999, Integer.MAX_VALUE };
static int stringSize(int x) {
for (int i=0; ; i++)
if (x <= sizeTable[i])
return i+1;
}
-----------------------------------------------------------------------------------------
遞歸實現的代碼:
int num = random.nextInt();
while (num / 10 > 0) {
num = num / 10;
length++;
}
------------------------------------------------
當循環增加到百萬數量級時,
前者的時間差不多是后者數量級的一半 。
posted on 2011-05-17 11:55
墻頭草 閱讀(297)
評論(0) 編輯 收藏