中等題3-統(tǒng)計數(shù)字

題目鏈接:
https://www.lintcode.com/problem/digit-counts/description
描述
計算數(shù)字k在0到n中的出現(xiàn)的次數(shù),k可能是0~9的一個值
您在真實的面試中是否遇到過這個題? 是
樣例
例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我們發(fā)現(xiàn)1出現(xiàn)了5次 (1, 10, 11, 12)
代碼實現(xiàn):

package 中等題1;

import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) {
        int k = 1;
        int n = 12;
        System.out.println(digitCounts(1,12));
    }
    
    public static int digitCounts(int k, int n) {
        int num = 0;
        for (int i = k; i <= n; i++){
             //整數(shù)變成字符串
            String s = String.valueOf(i);
             //字符串變成字符數(shù)組
            char[] ss = s.toCharArray();
            for (int j = 0; j < s.length(); j++){
                //字符變成整數(shù)
                int a = Character.getNumericValue(ss[j]);
                if (a == k){
                num++;
                }
            }
        }
        return num;
    }
    
}

代碼實現(xiàn)2:數(shù)學(xué)方法獲得)通過與10的余數(shù)得到末位,通過與10除去掉末位,構(gòu)成一個循環(huán),就可以分析一個數(shù)的所有位。然后把所有位都加起來(從局部到整體)

 public int digitCounts(int k, int n) {
        int cnt = 0;
        for (int i = k; i <= n; i++) {
            //分次計算每一個數(shù)中含有k的個數(shù)
            cnt += singleCount(i, k);
        }
        return cnt;
    }
    public int singleCount(int i, int k) {
        //排除0的情況
        if (i == 0 && k == 0)
            return 1;
        int cnt = 0;
        while (i > 0) {
            //判斷末尾是否為k
            if (i % 10 == k) {
                cnt++;
            }
            //去掉末尾再次循環(huán),直到去除完所有位跳出循環(huán)
            i = i / 10;
        }
        return cnt;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:選D,7+9=16;9+(-1)=8;(...
    Alex_bingo閱讀 19,782評論 1 19
  • “ 酷暑讀書會,盛夏武修身”回眸 2017.8.9 由南岸區(qū)文化委,南岸區(qū)圖書館主辦,重慶資武太極道院...
    有一套閱讀 298評論 0 1
  • 我希望變成一個體面的girl,工作到凌晨四點也能去洗澡,喝酒到天亮也知道卸妝那種。 下輩子吧! ?
    臥底小龍蝦閱讀 175評論 0 0
  • 昨晚放學(xué),還沒見到人,就聽見小郭在電話里要求讓給他買個雞排慶祝一下今天數(shù)學(xué)測驗得了99分。我說:我考慮一下,等見面...
    你今天怎么樣閱讀 333評論 0 0
  • 吽嗒睞 度嗒睞 度睞嗦哈 吽嗒睞 度嗒睞 度睞嗦哈 湛藍夜空中的朗星 在放歌 唱響空靈的梵音 撥動顫顫的琴弦 搖曳...
    塵光閱讀 614評論 0 1

友情鏈接更多精彩內(nèi)容