线性扫描序列,统计等于指定数字 m 的元素个数。
OJ: roj
题目 ID: 1102
难度:入门
标签:枚举入门
创建: 2026-09-29 18:53
更新: 2026-10-05 01:08
题目描述
给定长度为 3、2 3 2、2 三行,输出 2。
思路
每个数都必须被检查一次,因此直接遍历整个序列,用计数器统计等于
参考代码
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;
}