BCLUCKY1 spoj PTIT – Số gần may mắn

Nguồn đề bài: http://www.spoj.com/PTIT/problems/BCLUCKY1/

1. Đề bài BCLUCKY1 spoj PTIT

Petya yêu thích các số may mắn. Ta biết rằng một số là số may mắn nếu biểu diễn thập phân của nó chỉ chứa các chữ số may mắn là 4 và 7.

Ví dụ, các số 47, 744, 4 là số may mắn và 5, 17, 467 không phải.

Tuy nhiên, không phải tất cả các số là may mắn. Petya gọi 1 số là số gần may mắn nếu có số chữ số may mắn là số may mắn.

Hãy kiểm tra xem 1 số có là số gần may mắn không.

Input

Chỉ chứ số nguyên n (1 ≤ n ≤ 1018).

Output

In ra trên 1 dòng “YES” nếu nsố gần may mắn. Ngược lại, in ra “NO” (không có dấu nháy).

Ví dụ

Ví dụ:

Input

40047

Output

NO

Input

7747774

Output

YES

Input

1000000000000000000

Output

NO

Giải thích

Trong test đầu, có 3 chữ số may mắn (1 ở đầu và 2 ở cuối), mà 3 không là số may mắn, nên đáp án là “NO”.

Trong test thứ 2, có 7 chữ số may mắn, mà 7 là số may mắn, nên đáp án là “YES”.

Trong test thứ 3, không có chữ số may mắn nào, nên đáp án là “NO”.

2. code tham khảo BCLUCKY1 spoj PTIT

const   fi='';
type
        data=longint;
var
        s:string;
        f:text;

procedure xuli;
var     i:data;
        dem:data;
begin
        assign(f,fi); reset(f);
        readln(f,s);
        close(f);
        dem:=0;

        for i:=1 to length(s) do
                if s[i] in ['4','7'] then
                        inc(dem);
        if dem in [4,7] then
                writeln('YES')
        else
                writeln('NO');
end;

begin
        xuli;
end.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *