NOTE

整数中1出现的次数

逐个枚举整数并取模统计从 1 到 n 的十进制表示中数字 1 出现的次数。

Data Structures & Algorithms创建于 更新于 约 1 分钟读完historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 题目描述

求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。

2. 思路

  • 取模

3. 实现

func NumberOf1Between1AndN_Solution(n int) int {
	count := 0

	for i := 1; i <= n; i++ {
		j := i
		for j != 0 {
			if j%10 == 1 {
				count++
			}
			j /= 10
		}
	}

	return count
}

4. 参考

讨论

使用 GitHub 账号参与讨论,评论会保存在 GitHub Issues 中。在 GitHub 查看