输入正整数a,b(0<a<b<10000),输入k(0<=k<=9), 输出从a到b,包含的k的个数。 测试案例: 输入 90 123 2 输出 8 解释 92 102 112 120 121 122 123
时间: 2024-09-08 09:02:25 浏览: 36
算法编程试题==.docx
要解决这个问题,我们需要遍历从a到b之间的所有整数,并检查每个数字中包含数字k的个数。我们可以编写一个函数来计算单个数字中包含k的个数,然后遍历指定范围内的每个数字,累加每个数字中k的个数。
这里是一个简单的算法步骤:
1. 对于范围[a, b]内的每一个整数i,执行以下步骤:
a. 将整数i转换为字符串形式。
b. 遍历字符串的每一个字符:
i. 如果字符是'k',则计数器加1。
c. 累加计数器到总和中。
2. 返回总和。
现在,让我们来编写代码实现这个算法。
```python
def count_k_in_num(num, k):
return str(num).count(str(k))
def count_k_in_range(a, b, k):
count = 0
for i in range(a, b + 1):
count += count_k_in_num(i, k)
return count
# 测试案例
a = 90
b = 123
k = 2
print(count_k_in_range(a, b, k))
```
以上代码定义了两个函数:`count_k_in_num`用于计算单个数字中包含k的个数,`count_k_in_range`用于计算从a到b范围内每个数字中k的个数总和,并打印结果。
阅读全文