重囗另类BBWSeⅹHD,av狼论坛,精品一卡2卡三卡4卡乱码理论,体育生gv老师浪小辉3p警察

LeetCode Count Digit One -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.ipr-jzsc.com - 電腦資料】

    題目描述:

    Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.

    For example:

    Given n = 13,

    Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.

    本題目純粹是找規律求解,

LeetCode Count Digit One

    該實現參考了:

    //Solution:

    //For example '8192':

    //

    //1-999 -> countDigitOne(999)

    //1000-1999 -> 1000 of 1s + countDigitOne(999)

    //2000-2999 -> countDigitOne(999)

    ...

    //7000-7999 -> countDigitOne(999)

    //

    //8000-8192 -> countDigitOne(192)

    //

    //Count of 1s : countDigitOne(999)*8 + 1000 + countDigitOne(192)

    //

    //Noticed that, if the target is '1192':

    //

    //Count of 1s : countDigitOne(999)*1 + (1192 - 1000 + 1) + countDigitOne(192)

    //

    //(1192 - 1000 + 1) is the 1s in thousands from 1000 to 1192.

    實現代碼:

   

public int CountDigitOne(int n) {      if(n <= 0){		return 0;	}    if(n < 10){		return 1;	}		var result = 0;    var digit = 1;	var num = n;    while (num > 0) {          var mod = num % 10;          var sign = mod > 0 ? 1 : 0;  		        num /= 10;        int a = num * digit;         int b = sign * (mod == 1 ? n % digit + 1: digit);          result += a + b;          digit *= 10;      }      return result;      }

最新文章
主站蜘蛛池模板: 怀来县| 历史| 察雅县| 富阳市| 贺州市| 四平市| 利辛县| 舞钢市| 茶陵县| 永善县| 兴海县| 壶关县| 垣曲县| 清水河县| 鄢陵县| 衡山县| 宜阳县| 德惠市| 松原市| 宁强县| 沙田区| 印江| 仁布县| 大竹县| 垫江县| 英德市| 社旗县| 古交市| 托里县| 梅州市| 莲花县| 定襄县| 巴青县| 十堰市| 皮山县| 罗山县| 静海县| 南川市| 乌海市| 新安县| 武山县|