题解
统计能被5整除的数
1 条题解
-
0
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