问题描述
输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入格式
一个正整数n
输出格式
一个整数,表示1出现的资料
样例输入
15
样例输出
8
思路:我是利用每个字符串中出现‘1’的次数,然后全部加起来就是出现1的次数。
def caculate():
n = int(input())
x = str(1)
counts = []
sum = 0
for i in range(n + 1):
s = str(i)
per_times = s.count(x)
counts.append(per_times)
for j in counts:
k = int(j)
sum += k
return sum
if __name__ == "__main__":
result = caculate()
print(result)