DIGIT0 - Số 0 tận cùng
Tác giả: skyvn97
Ngôn ngữ: C++
#include<stdio.h>
#include<string.h>
#define MAX 10101
int a[33];
int n;
int n2,n5;
int p2[MAX];
int p5[MAX];
char s[MAX];
void process(void)
{
int i,j;
scanf("%s",s);
n=strlen(s);
for (i=1;i<=30;i=i+1) a[i]=0;
n2=0;
n5=0;
for (i=1;i<=n;i=i+1)
{
a[s[i-1]-'a'+1]++;
if (i%2==0) p2[i]=p2[i/2]+1;
else p2[i]=0;
if (i%5==0) p5[i]=p5[i/5]+1;
else p5[i]=0;
n2=n2+p2[i];
n5=n5+p5[i];
}
for (i=1;i<=30;i=i+1)
for (j=1;j<=a[i];j=j+1)
{
n2=n2-p2[j];
n5=n5-p5[j];
}
if (n2>n5) printf("%d",n5);
else printf("%d",n2);
}
int main(void)
{
process();
}