ZeroJudge C562: Puyu 愛數論

題目敘述

本題採EOF方式收資料,每筆資料有一個正整數N,要求輸出f(N)的值。幾個f(N)的範例如下,題目要求自行判斷規律。


F ( 110  ) = 1 ,     F ( 163 ) = 1 ,   F ( 223 ) =  0 ,


F ( 119 ) = 1 ,      F ( 278 ) = 2 ,    F ( 821 ) = 2 。


範例輸入 #1

223

821

734

範例輸出 #1

0

2

0


解題思路

本題是考N這個數中每一個數字有多少個洞,舉例f(0)會是1、f(8)會是2。可以使用字串將N進行輸入之後使用if來判斷,範例程式碼中是使用Map來做判斷這樣可以直接將f(N)直接加到答案中。

解題程式碼如下 (僅供參考):

#include <iostream>
#include <map>
using namespace std;

int main() {
    map<char, int>MAP;
    MAP['0'] = 1;
    MAP['6'] = 1;
    MAP['8'] = 2;
    MAP['9'] = 1;
    string N;
    while (cin >> N)
    {
        int ans = 0;
        for (int i = 0; i<N.length(); i++)
        {
            ans += MAP[N[i]];
        }
        cout << ans << "\n";
    }
}

留言