循环!循环!循环!——洛谷#P1980 计数问题(Python实现)

题目描述

试计算在区间 1 到 n的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。

Python解答

解答1

  1. 把1到n整数里所有位的数字拆分成单个数字,变为str格式后放入list。
  2. 用count方法,统计list中数字x出现的次数。
# -*- coding: utf-8 -*-
# @Time    : 2019/10/31 17:27
# @Author  : 小晓酱
# @File    : luoguu.py
# @Software: PyCharm

End, Num = (int(i.strip()) for i in input().split())
Count = []
for i in range(1, End + 1):
    Count.extend(list(str(i)))
Times = Count.count(str(Num))
print(Times)

解答2

  1. 利用循环。当整数n mod 10 的结果为数字x时,说明个位数为x。次数加1。
  2. 整数n除以10取整后再mod 10,当结果为数字x时,说明十位数为x。次数再加1
  3. 依次类推,直到整数n的最高位。
# -*- coding: utf-8 -*-
# @Time    : 2019/10/31 17:27
# @Author  : 小晓酱
# @File    : luoguu.py
# @Software: PyCharm

End, Num = (int(i.strip()) for i in input().split())
Times = 0
for i in range(1, End + 1):
    while i:
        if i % 10 == Num:
            Times += 1
        i //= 10
print(Times)
发布了330 篇原创文章 · 获赞 71 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/sinat_26811377/article/details/102878692