计蒜客 函数规律

下面我将描述一个简单的函数:

f(8)=2

f(16)=1

f(32)=0

f(2048)=3

读入一个x(1≤x≤101000),请你找出f(x)的值。

输入包括一行,仅一个数字x。

输出包括一行,仅一个数字f(x)。

提示:

f(0)=1, f(1)=0, f(2)=0, f(3)=0, f(4)=0, f(5)=0, f(6)=1, f(7)=0, f(8)=2, f(9)=1

有时候看数据猜题意也是很重要的技能,如果你看到这里还不知道题意的话,那么我来告诉你,f(x)表示x的十进制表示中有多少个圈圈。

 

样例输入

2048

样例输出

3

分析:很简单,将输入的数当做字符串,判断每一位有多少个圈。加起来。
 1 #include <stdio.h>
 2 #include <string.h>
 3 int main(){
 4     int num[] = {1, 0, 0, 0, 0, 0, 1, 0, 2, 1};
 5     char s[1001];
 6     int len, i, ans = 0;
 7     scanf("%s", s);
 8     len = strlen(s);
 9     for(i = 0; i < len; i++){
10         ans += num[s[i] - '0'];
11     }
12     printf("%d", ans);
13     return 0;
14 }

 

 
posted @ 2016-08-30 23:27  琴影  阅读(216)  评论(0编辑  收藏  举报