题目描述
一扶苏一认为,有一些数字中,有零的影子。
如图,在数字2,6,9,0 中有一个零的影子,而在数字 88 中有两个零的影子。
给出一个数,求其中零的影子的个数。
输入格式
输入一行一个整数 X。
输出格式
输出一行一个整数,为你的答案。
输入输出样例
输入 #1
123456789
输出 #1
5
说明/提示
数据规模与约定
对于 20% 的数据,1≤X<10;
对于 60% 的数据,1≤X<109;
对于 100% 的数据,1≤X<1018。
嗨嗨呦~扶苏姐姐你怎么这样啊~~~
直接放代码好了:
#include<bits/stdc++.h>
using namespace std;
int a[10]={1,0,1,0,0,0,1,0,2,1};//对应每个数字
int ans;//结果
int n;//输入的变量
int main()
{
cin>>n;
while(n)//在c++中,非零即真
{
ans+=a[n%10];//就是分离数位然后ans加上数字中的0,其实也可以用if条件句,就是太麻烦
n/=10;
}
cout<<ans;
return 0;//好习惯
}
然后就得60分,一看,要开longlong,ans也要longint
#include<bits/stdc++.h>
using namespace std;
int a[10]={1,0,1,0,0,0,1,0,2,1};
long int ans;
long long n;
int main()
{
cin>>n;
while(n)
{
ans+=a[n%10];
n/=10;
}
cout<<ans;
return 0;
}