zoukankan      html  css  js  c++  java
  • 233. Number of Digit One(统计1出现的次数)

    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.

    按不同位置统计

    31456 统计百位时:

    (0-31) 1 (0-99) 32*100次

    31156:

    (0-30)1(0-99) + (31)  1  (0-56)  31*100+56+1次

    31056:

    (0-30)1  (0-99) _31*100 次

     1 class Solution:
     2        def countDigitOne(self, n):
     3             ones, wei = 0,  1
     4             while wei <= n:
     5                 m = int(n / wei) % 10  # 求某位数字
     6 
     7                 if m > 1:
     8                     ones += (int(n / wei / 10) + 1) * wei
     9                 elif m == 1:
    10                     ones += (int(n / wei / 10)) * wei + (n % wei) + 1
    11                 else:
    12                     ones += (int(n / wei / 10)) * wei
    13                 wei *= 10
    14             return int(ones)
  • 相关阅读:
    第七单元
    第六单元
    第五单元
    第四单元
    第三章
    第二单元
    第一单元
    单词
    机器学习和模式识别的区别
    TODO-项目
  • 原文地址:https://www.cnblogs.com/zle1992/p/8543817.html
Copyright © 2011-2022 走看看