题意:
统计a->b直接所有数字中0的个数总和
思路:
找规律。详情见
51nod-1042 数字0-9的数量
#include <iostream>
#include <stdio.h>
using namespace std;
long long ans=0;
void solve(long long n,int op)
{
long long num=n;
long long cur=0;
long long last=0;
long long pre=0;
long long count=0;
long long i=1;
while(n/i!=0)
{
last=n%i;
pre=n/i/10;
cur=(n-pre*i*10-last)/i;
if (cur>0)
count+=(pre+1)*i;
else
count+=pre*i+last+1;
i*=10;
}
long long step=1;
while(num!=0)
{
count-=step;
step*=10;
num/=10;
}
if(op==0)
{
ans=ans-count;
}
else
{
ans=ans+count;
}
}
int main()
{
long long a,b;
while(cin>>a>>b)
{
ans=0;
if(a==-1&&b==-1)
break;
if(a==0)
ans++;
if(b==0)
ans++;
solve(a-1,0);
solve(b,1);
cout<<ans<<endl;
}
return 0;
}