📌  相关文章
📜  给定范围内的数组元素计数,当 Q 查询除以 K 时余数为 X(1)

📅  最后修改于: 2023-12-03 15:11:40.712000             🧑  作者: Mango

题目介绍

本题目需要在给定的数组中,查询有多少个元素可以被 $K$ 整除,且余数为 $X$。

数组的下标从 $0$ 开始,查询的结果必须返回一个整数。

输入格式

输入数据包含多个测试用例。

对于每个测试用例,第一行输入两个整数 $N$ 和 $Q$,表示数组的长度和查询的次数。

第二行输入 $N$ 个整数,表示数组元素的值。

之后 $Q$ 行,每行输入两个整数 $K$ 和 $X$,表示查询满足条件的元素个数。

输出格式

对于每个查询,输出满足条件的元素个数,每个测试用例的查询结果输出之间用换行隔开。

样例输入

4 3
1 2 3 4
2 0
2 1
2 2

样例输出

2
1
0

实现思路

对于每个测试用例的每个查询,依次遍历数组中的每个元素,计算每个元素除以 $K$ 的余数,判断是否等于 $X$,若相等则计数器加一。

最终返回计数器的值即为查询结果。

代码实现

以下是 Python 语言的示例代码:

while True:
    try:
        # 读入数据
        n, q = map(int, input().split())
        a = list(map(int, input().split()))

        # 处理查询
        for i in range(q):
            k, x = map(int, input().split())
            count = 0
            for j in range(n):
                if a[j] % k == x:
                    count += 1
            print(count)

    except:
        break

以上代码使用了 Python 自带的异常处理机制,可以保证程序在文件结尾读完时自动退出。其他语言的实现方式可能略有不同,但实现思路大体相同。