赞
踩
先看个例子,假设 1 到 11 中,要统计 1 出现的次数,那能进行 count 操作的就是 1, 10, 11 ,次数为 4 。
原理懂了之后就用代码来实现这一操作。首先我用range()来生成一个 1 到 n 的区间,在这个区间内进行统计操作。接下来定义一个 n ,用来接收用户自己定义的最大范围-1 (因为range是不包含最大的),还要定义 x 用来接收用户想要统计的数。
- n = int(input("最大范围(-1): "))
- x = int(input("输入要统计的数: "))
- count = 0
接下来就是条件判断了,在 1 到 9 的区间内,可以用恒等的条件来判断,而大于 10 后就是两位数或者三位数以上,所以这个这个时候的判断逻辑就是先看个位数有没有 x ,然后把个位数去掉,再看最后一位有没有 x ,由此类推。
- y = 0
- for i in range(1, n):
- if(0 < i < 10):
- if(i == x):
- count += 1
- else:
- while(i != 0):
- # 判断 i 的最后一位等不等于 x,等于count+1
- y = i % 10
- if (y == x):
- count += 1
- # 去除 i 的最后一位数
- i = i // 10
上面定义了个 y 来接收一下 i ,用 y 来进行求余操作,防止 i 的值被覆盖掉 ,从而传到后面进行去除最后一位操作,while 的循环条件就是一直取到 i 的最高位等于 0 而跳出循环。
- # 数学逻辑:先个位判断,再到十位及以上
- n = int(input("最大范围(-1): "))
- x = int(input("输入要统计的数: "))
- count = 0
- y = 0
- for i in range(1, n):
- if(0 < i < 10):
- if(i == x):
- print(i)
- count += 1
- else:
- while(i != 0):
- # 判断 i 的最后一位等不等于 x,等于count+1
- y = i % 10
- if (y == x):
- print(y)
- count += 1
- # 去除 i 的最后一位数
- i = i // 10
- print(f"{x}出现次数是:{count}")
还有一种实现方法就是把 i 和 x 变成串,只需要遍历字符串 i 的值中有恒等于 字符串 x 的值就进行 count 操作就行。
- def num(n, x):
- count = 0
- for i in range(1, n):
- # 判断 str(x) 在不在 str(i) 中,有就进 if
- if str(x) in str(i):
- for j in str(i):
- if str(x) == j:
- count += 1
- return count
-
- n = int(input("最大范围(-1): "))
- x = int(input("输入要统计的数: "))
- print(f"{x}的次数为:{num(n, x)}")
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。