CF110A Nearly Lucky Number

http://codeforces.com/problemset/problem/110/A传送门

解释:这是cf上的一题a题,在洛谷上被分类成入门级别的难度,代码难度不高但是对对题目的理解能力要求比较高,或者说这题比较坑

题目大意:

如果一个数仅包含4和7,那么它就是一个”幸运数字”。 如果一个数本身不是幸运数,但是它所含有的数字4和7的个数之和为一个”幸运数字”,那么它就是一个”类幸运数字”。 给您一个数,请编程判断它是不是”类幸运数字”。

输入格式

一行一个整数N(N在64位整数(long long / int64)范围内)。

输出格式

一行一个字符串,如果N是”类幸运数字”则输出”YES”,否则输出”NO”。

输入输出样例

输入样例#1:复制

40047

输出样例#1:复制

NO

输入样例#2:复制

7747774

输出样例#2:复制

YES

输入样例#3:复制

1000000000000000000

输出样例#3:复制

NO

题解:思路上没有难度,但要注意你所判断的是否是“类幸运数字”,而不是“幸运数字”,也就是说你其实可以不用管是否是幸运数字

#include <iostream>
using namespace std;
int main()
{
    string s;
    cin >> s;
    int num = 0;
    bool f = true;
    for(int i=0; i<s.size(); i++)
    {
        if( s[i] == '4'|| s[i] == '7')
            num ++;
    }
     num == 4 || num == 7 ? cout << "YES" << endl : cout<<"NO" << endl;
//因为s的长度有限制所以直接判断是否4个或者7个就可以了,4和7才是幸运数字
}
原文地址:https://www.cnblogs.com/ygbrsf/p/12583018.html