与指定数字相同的数的个数

GitHub跳转原题关系图返回列表

题目描述

给定长度为 NN(N⩽100N \leqslant 100)的整数序列 a1,…,aNa_1, \dots, a_N 和一个整数 mm,求序列中与 mm 相同的数的个数。 输入共三行:第一行为 NN;第二行为 NN 个以空格分开的整数;第三行为指定的整数 mm。输出一个整数表示答案。 样例:输入 3、2 3 2、2 三行,输出 2。

思路

每个数都必须被检查一次,因此直接遍历整个序列,用计数器统计等于 mm 的元素个数即可,复杂度 O(N)O(N)。

参考代码

Python 版:

python
#!/usr/bin/env python3
# Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
# rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
# rainboy的学习导航网站: https://idx.roj.ac.cn
# create_at: 2026-09-29 18:53
# update_at: 2026-09-29 18:53

import sys


def solve() -> None:
    """统计整数序列中与指定数字相同的数的个数。"""
    data = list(map(int, sys.stdin.buffer.read().split()))
    n, *rest = data
    seq = rest[:n]
    m = rest[n] if len(rest) > n else 0  # 兼容空序列
    print(seq.count(m))


if __name__ == "__main__":
    solve()

C++ 版(同一算法):

cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-10-05 01:08
 * update_at: 2026-10-05 01:08
 */
// main.cpp:统计整数序列中与指定数字 m 相同的数的个数。
#include <iostream>

typedef long long ll;

const int MAXN = 105;
ll a[MAXN]; // a[i] 表示序列中第 i 个数

int main() {
    ll n; // 序列长度
    std::cin >> n;
    for (ll i = 1; i <= n; i++) {
        std::cin >> a[i];
    }

    ll m; // 指定的数字
    std::cin >> m;

    ll cnt = 0; // 序列中与 m 相等的数的个数
    for (ll i = 1; i <= n; i++) {
        if (a[i] == m) {
            cnt++;
        }
    }
    std::cout << cnt << std::endl;
    return 0;
}