每10个数中必有一个各位数字和可以被10整除的数。
算的时候特判一下边界。另外注意0也是符合的。
还有就是要用%I64d。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
ll Sum(ll val)
{
ll sum=0;
while(val)
{
sum+=val%10;
val/=10;
}
return sum;
}
ll solve(ll val)
{
if(val<0) return 0;
ll cnt=0;
for(ll i=val/10*10; i<=val; ++i)
if(Sum(i)%10==0)
cnt++;
return val/10+cnt;
}
int main()
{
int T,kase=0;
scanf("%d",&T);
while(T--)
{
ll a,b;
scanf("%I64d%I64d",&a,&b);
printf("Case #%d: %I64d\n",++kase,solve(b)-solve(a-1));
}
return 0;
}