每日算法之统计数字

题目要求

计算数字k在0到n中的出现的次数,k可能是0~9的一个值。

例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了5次 (1, 10, 11, 12)

代码实现:

public int digitCounts(int k, int n) {
       int count = 0;
        for (int i = 0; i <= n; i++) {
            int m = i;
            while (m / 10 != 0) {
                int y = m % 10;
                if (y == k) {
                    count++;
                }
                m = m / 10;
            }
            if (m == k){
                count++;
            }

        }
        return count;
    }

个人感觉该算法有点麻烦,有更好的方法麻烦告之~~~

你可能感兴趣的:(每日算法之统计数字)