top1编程
← 返回题目
题解

统计能被5整除的数

1 条题解

  • 0
    @ 2026-8-5 21:17:14

    P4420 统计能被5整除的数(入门)

    解题思路

    读入一串整数,最后一个一定是0,要统计有多少个数能被5整除。能被5整除,就是除以5余数为0,比如10、20、35,判断条件是 x%50。读入方式和其他"以0结尾"的题一样,用 while(cin>>x && x!=0):读到一个数,只要它不是0就继续处理;读到0就说明输入结束了,停止循环。注意0是结束信号,虽然 0%50,但我们不能把0也算进去,所以循环条件里就把它挡在门外了。边界情况:如果数据里一个能被5整除的都没有,cnt保持0,输出0;如果第一个数就是0,说明没有任何数据,也输出0。题目保证整数个数不超过100个,数据量很小,不用担心超时。

    参考代码

    // 程序用途:读入一串整数(以0结尾),统计其中能被5整除的数的个数
    #include <iostream>
    using namespace std;
    
    int main() {
        int x, cnt = 0;                 // x是读入的数,cnt是计数器
        while (cin >> x && x != 0) {    // 读到0结束
            if (x % 5 == 0) cnt++;      // 余数为0说明能被5整除
        }
        cout << cnt << endl;            // 输出个数
        return 0;
    }
    

    复杂度分析

    一共读入n个整数(n≤100),每个数只判断一次,所以时间复杂度 O(n);只用x、cnt两个变量,额外空间复杂度 O(1)。

    • 1