题意:给出一个数,删除某些位上的数字,使其能够被10的k次方整除
记录每个0出现的位置,并统计个数
code:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char s[11];int num[20];
int k;
while(~scanf("%s%d",s,&k))
{
int le=strlen(s);
int sum=0;
for(int i=0;i<le;i++){
if(s[i]=='0')
num[sum++]=i;
}
if(sum<k)
printf("%d\n",le-1);
else{
int tt=le-num[sum-k]-k;
printf("%d\n",tt);
}
}
return 0;
}
例如10203049 2 num[0]=1,num[1]=3,num[2]=5 sum=3 tt=le-num[sum-k]-k=8-num[3-2]-2=3