1的个数
- 问题描述
- 输入格式
- 输出格式
- 样例输入
- 样例输出
- 数据规模和约定
- 解题思路
- 代码实现
问题描述
输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入格式
一个正整数n
输出格式
一个整数,表示1出现的资料
样例输入
15
样例输出
8
数据规模和约定
n不超过30000
解题思路
这题的一个思路是用数学运算把一个数的每一位都算出来。
假设有一个数a = 12345 :
- 取个位 : (a / 1) % 10
- 取十位: (a / 10) % 10
- 取百位: (a / 100) % 10
- … …
这是一种思路,另一种思路是把这个数直接转换成字符串,然后用for循环遍历这个字符串里的每一个字符(其实就是这个数的每一位),然后再转换成整型即可,下面看一下代码实现。
代码实现
def CountOne():
# The number of 1
n = int(input())
count = 0
for items in range(n + 1):
for item in str(items):
if int(item) == 1:
count += 1
print(count)
CountOne()