满足要求的数字个数 时间限制:1.00s内存限制:16.00MB 题目背景 找出1-N中能被5整除且至少有一位数字是5的所有整数的个数. 输入格式 输入只有一行,只有1个整数N。 输出格式 输出只有一行(这意味着末尾有一个回车符号),包括1个整数。
时间: 2024-02-13 09:04:29 浏览: 113
输出1000以内既能被5整除又能被7整除的数,要求5个数一行
题目分析:
题目中要求找出在 $1$ 到 $N$ 之间能被 $5$ 整除且至少有一位数字是 $5$ 的所有整数的个数。因此我们可以遍历 $1$ 到 $N$ 之间的整数,然后判断是否满足条件。
判断一个数能否被 $5$ 整除,可以直接使用取模运算。判断至少有一位数字是 $5$,可以将该数转化为字符串,然后判断字符串中是否包含字符 '5'。
时间复杂度为 $O(N \log N)$。
C++ 代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n;
int cnt = 0;
for (int i = 1; i <= n; i++) {
if (i % 5 == 0) {
string s = to_string(i);
if (s.find('5') != string::npos) {
cnt++;
}
}
}
cout << cnt << endl;
return 0;
}
```
阅读全文