題目敘述
本題採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";
}
}
留言
張貼留言