试题 算法训练 1的个数

问题描述
  输入正整数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)
发布了81 篇原创文章 · 获赞 10 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Python_Matlab/article/details/104652305