计蒜客--函数规律

  •  36.64%
  •  1000ms
  •  65536K

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

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

思路:本题数据较大,采用字符的形式存储数据,然后打表每个十进制是0的个数

#include<iostream> 
#include<cstring>
using namespace std;
int b[10]={1,0,0,0,0,0,1,0,2,1};
int main()
{
	string a;
	long long sum=0;
	cin>>a;
	for(long long i=0;i<a.length();i++)
	{
		sum=sum+b[a[i]-'0'];
	}
	cout<<sum<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xyqqwer/article/details/81335120