Test Message

c562: Puyu 愛數論

內容

對於精通數論題目的 Puyu,號稱沒有數論題目是他解不出來的。於是擅長出奇怪水題的 CTF 從天上降臨到了人間準備跟他來一較高下。

CTF 給 Puyu 幾組數字,分別代表函數帶進去的值與函數結果,請他找出其中的規律,並回答 CTF 問的一些數字會產生的結果。

函數如下:

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

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

現在請你觀察函數規律,並寫個程式來幫助 Puyu 來完成挑戰!


輸入

每筆測資包含多筆詢問。

每行有一個數字 N ,代表 CTF 問 Puyu 的數字

( 0 <= N <= 2147483649 )

223
821
734

輸出

每行請輸出一個數  F ( N ) 。

F ( N ) 必在 int 範圍。

0
2
0


解題思路

找圈圈

  • 0 = 1
  • 6 = 1
  • 8 = 2
  • 9 = 1

輸出輸入字串共有幾個圈即可。


完整程式碼

AC (5ms, 96KB)
#include <stdio.h>

int ans;
char list[11];

int main()
{
while (scanf(" %s", &list) == 1)
{
ans = 0;
for (int i = 0; list[i]; i++)
{
if (list[i] == '0') ans++;
else if (list[i] == '6') ans++;
else if (list[i] == '8') ans += 2;
else if (list[i] == '9') ans++;
}
printf("%d\n", ans);
}
return 0;
}