Codeforces 110A Nearly Lucky Number 差一點的幸運數字

幫助喜歡幸運數字的Petya 來確認一個數字是否為「差一點的幸運數字」

難易度 : 800

英文原文如下

Petya loves lucky numbers. We all know that lucky numbers are the positive integers whose decimal representations contain only the lucky digits 4 and 7. For example, numbers 477444 are lucky and 517467 are not.

Unfortunately, not all numbers are lucky. Petya calls a number nearly lucky if the number of lucky digits in it is a lucky number. He wonders whether number n is a nearly lucky number.

中文翻譯

Petya 喜歡幸運數字,我們都知道幸運數字就是那些只包含了 47 的十進位制數字。舉例來說,像是 477444 是幸運數字,而  517467 不是。

不幸的是,不是所有數字都是幸運的。要是有一個號碼他的 4 跟 7 總計出現的次數為 4 或 7次,Petya 將其稱為差一點的幸運數字。他想知道數字 n 是否是一個差一點的幸運數字。

輸入

The only line contains an integer n (1 ≤ n ≤ 1018).

Please do not use the %lld specificator to read or write 64-bit numbers in С++. It is preferred to use the cin, cout streams or the %I64d specificator.

唯一一行包含了一個整數 n (1 ≤ n ≤ 1018)。

請勿在C++中使用 %lld 指定符來讀取或寫入64位元數字。建議使用 cin、cout 串流或 %I64d 指定符。

輸出

Print on the single line “YES” if n is a nearly lucky number. Otherwise, print “NO” (without the quotes).

要是 n 是差一點的幸運數字則印出 “YES”,反之則為 “NO” (不用引號)

範例

輸入40047
輸出NO
輸入7747774
輸出YES
輸入1000000000000000000
輸出NO

解題思路

我們可以使用一個整數來計算輸入字符串中幸運數字的出現次數,通過遍歷輸入字符串,我們可以輕鬆解決這個問題。

C#解決方案

方案1

string word = Console.ReadLine();
int cnt = 0;

foreach(var c in word){
    if(c=='4' || c=='7')
    {
        cnt+=1;
    }
}

Console.WriteLine((cnt==4 || cnt ==7) ? "YES" : "NO");

Java解決方案

方案1

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String word = scanner.nextLine();
        int cnt = 0;
        
        for (char c : word.toCharArray()) {
            if(c=='4' || c=='7')
            {
                cnt+=1;
            }
        }
        
        System.out.print((cnt==4 || cnt ==7) ? "YES" : "NO");
        
    }
}

Python3解決方案

方案1

word = input()
cnt = 0

for c in word:
    if(c=='4' or c=='7'):
        cnt+=1
       
print( "YES" if (cnt==4 or cnt==7) else "NO" )

結論

相信大家都有自己的小偏方關於如何抓住幸運的吧~

我也希望哪天可以夢到幸運數字,最好是6個號碼加一個特別號…

🧡如果文章有幫上你的忙,那是我的榮幸

🧡收藏文章或幫我點個廣告,那都是對我的支持

✅如有任何疑問,歡迎透過留言或messenger讓我知道 !

題目連結 : Problem – 110A – Codeforces

一些其他的Codeforces文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *