题目链接
一些话
一开始n的类型写成了long long,被题目的提示迷惑了
因为要遍历每一位数字,所以应该用string
流程
遍历字符串,记录4和7的数量,然后判断其是否幸运
因为数字范围最大到18位,所以4和7数量最多是18,判断是否幸运的条件直接枚举小于等于18的幸运数字,即4和7
套路
ac代码
#include <iostream> using namespace std; int main(){ string n;//需要遍历每一位数字,用string来储存 cin >> n; int cnt = 0; for(int i = 0;i < n.size();i++){ if(n[i] == '4' || n[i] == '7') cnt++; } if(cnt == 4 || cnt == 7) cout << "YES"; else cout << "NO"; return 0; }