統計0-n數字中出現k的次數

/** * 統計0-n數字中出現k的次數,其中k範圍爲0-9 */ public static int countOne(int k, int n) { if (k > n) { return 0; } int sum = 0; int right = 0; for (int i = 0; n > 0; i++) { int last = n % 10; sum += last * i * (int) Math.pow(10, i - 1); if (k == 0) { sum -= (int) Math.pow(10, i); } if (last > k) { sum += (int) Math.pow(10, i); } if (last == k) { sum += right + 1; } right += last * Math.pow(10, i); n /= 10; } return sum + (0 == k ? 1 : 0); }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章