本文共 647 字,大约阅读时间需要 2 分钟。
/** * 统计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); }
转载地址:http://ujgia.baihongyu.com/