/**
* 統計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);
}
統計0-n數字中出現k的次數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.