智能算法挑 战复赛小学组
(总共 4 道题)
1. 捡石头
【题目描述】
小强在河边捡了 2 块漂亮的石头,他想再捡两块石头 ,让这 4 块石头的质量正好 为 30 斤,并石
块石头的质量之间的数字,请编程 输出第 3 块和第 4 块石头的质量。注:每个石头的重量都
输出 0 0。
【输入格式】
输入 2 个数,数与数之间以空格间隔,表示 2 块石头的质量。
【输出格式】
输出表示 第 3、4 块石头的质量的所有可能结果,每块石头质量的数字用空格隔 开。多组 结
分行输出。
【样例输入】 (测试数据不包含本样例 )
1 11
【样例输出】
8 10
9 9
答案解析:
我们可以使用两层循环来解决捡石头的问题。外层循环遍历第三块石头的质量,内层循环遍石足
下条件:
新捡的两块石头的质量要介于前两块石头的质量之间。
四块石头的质量之和等于 30。
在这个示例中,我们定义了一个 find_stones_weight 函数来查找可能的新石头的质量。用石
头和第四块石头的质量。如果满足条件,将它们存储在 results 列表中。
在主程序中,我们输入已有的两块石头的质量。然后,调用 find_stones_weight 函数查石行
出。
请注意,以上示例代码是使用 Python 编写的。如果您希望在其他编程语言中实现相同的功行
2. 判断数字出现了几次
def find_stones_weight(m1, m2):
results = [] # 保存所有可能的结果
for m3 in range(m1 + 1, m2):
for m4 in range(m3, m2 + 1):
if m1 + m2 + m3 + m4 == 30:
results.append((m3, m4))
return results
# 输入已有的两块石头的质量
m1, m2 = map(int, input().split())
# 查找可能的新石头质量并输出结果
possible_weights = find_stones_weight(m1, m2)
for weight in possible_weights:
print(weight[0], weight[1])
【题目描述】
给定一个正整数 n,判断从 1 到这个数本身的所有数中,一共出现了多少次数 字 k。
【输入格式】
输入共 1 行,包括一个正整数 n 和一个正整数 k。(0<n<32767,0<k<10) 【输出格式】
输出共 1 行,一个整数,表示 1 到 n 之间的所有数 (包括n),一共出现了几次 k。 【样例输入
13 3
【样例输出】
2
答案解析:
def count_occurrences(n, k):
count = 0
for num in range(1, n + 1):
# 将数字转换为字符串,以便进行字符比较
num_str = str(num)
# 统计数字 k 在当前数字中出现的次数
digit_count = num_str.count(
2023年信息素养大赛智能算法挑战复赛小学组