Golang | Leetcode Golang题解之第233题数字1的个数

题目:

题解:

func countDigitOne(n int) (ans int) {
    // mulk 表示 10^k
    // 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)
    // 但为了让代码看起来更加直观,这里保留了 k
    for k, mulk := 0, 1; n >= mulk; k++ {
        ans += (n/(mulk*10))*mulk + min(max(n%(mulk*10)-mulk+1, 0), mulk)
        mulk *= 10
    }
    return
}

func min(a, b int) int {
    if a < b {
        return a
    }
    return b
}

func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

相关推荐

  1. [LeetCode][233]数字 1 个数

    2024-07-15 10:32:02       41 阅读
  2. 力扣233数字1个数”

    2024-07-15 10:32:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 10:32:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 10:32:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 10:32:02       57 阅读
  4. Python语言-面向对象

    2024-07-15 10:32:02       68 阅读

热门阅读

  1. 为什么请求接口会在后面接?_t=

    2024-07-15 10:32:02       19 阅读
  2. Why does Wi-Fi consume more battery power than cellular data?

    2024-07-15 10:32:02       23 阅读
  3. shell中关于数组的使用

    2024-07-15 10:32:02       23 阅读
  4. 聊聊自动驾驶中的LiDAR和Radar

    2024-07-15 10:32:02       19 阅读
  5. python安全脚本开发简单思路

    2024-07-15 10:32:02       24 阅读
  6. 使用C++和libcurl下载指定的文件

    2024-07-15 10:32:02       25 阅读
  7. 微信小程序开发入门指南

    2024-07-15 10:32:02       20 阅读