top1编程
← 返回题目
题解

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

1 条题解

  • 0
    @ 2026-8-4 21:06:23

    解题思路

    题目先给一个总数 n 和一个指定的数字 num,再给 n 个整数,要统计这 n 个数中有多少个正好等于 num。

    这是典型的"计数"问题,思路很简单:准备一个计数器 cnt,先清成 0;然后循环 n 次,每读入一个数 a,就判断 a 是否等于 num,相等就让 cnt 加 1。循环结束后输出 cnt。

    注意判断相等要用"=="(两个等号),它表示"等于",而单个"="是赋值,把右边的值存进左边的变量,两者千万不能搞混。

    为什么计数器要先清 0?因为开始统计之前,一个符合要求的数都还没见到,数量当然是 0。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n, num;         // n:整数的个数;num:指定的数字
        cin >> n >> num;    // 读入 n 和 num
        int cnt = 0;        // cnt:与 num 相同的数的个数,先清 0
        for (int i = 1; i <= n; i++) {   // 循环读入 n 个数
            int a;          // a:当前读入的一个整数
            cin >> a;       // 读入这个数
            if (a == num) { // 如果它和指定的数字相同
                cnt = cnt + 1;  // 计数器加 1
            }
        }
        cout << cnt << endl; // 输出统计结果
        return 0;
    }
    

    复杂度分析

    循环恰好执行 n 次,每次做一次读入和一次比较,时间复杂度是 O(n),其中 n 是整数的个数。只用了 n、num、cnt、i、a 几个变量,空间复杂度 O(1)。

    • 1