提交时间:2023-05-27 16:38:53
运行 ID: 74597
#include<iostream> #include<cstring> using namespace std; bool isLucky(int x) { if (x % 4 == 0 || x % 7 == 0) { // 条件 1 或 2 return true; } string s = to_string(x); int len = s.length(); for (int i = 0; i < len - 1; i++) { // 枚举所有可能的 2 位子串 if ((s[i] == '4' && s[i+1] == '4') || (s[i] == '7' && s[i+1] == '7')) { return true; // 包含子串 "44" 或 "77" } } return false; } int main() { int n; cin >> n; int cnt = 0; for (int i = 1; i <= n; i++) { if (isLucky(i)) { cnt++; } } cout << cnt << endl; return 0; }