Description

If we sum up every digit of a number and the result can be exactly divided by 10, we say this number is a good number. 
You are required to count the number of good numbers in the range from A to B, inclusive.
 

Input

The first line has a number T (T <= 10000) , indicating the number of test cases. 
Each test case comes with a single line with two numbers A and B (0 <= A <= B <= 10 18).
 

Output

For test case X, output "Case #X: " first, then output the number of good numbers in a single line.
 

Sample Input

2 1 10 1 20
 

Sample Output

Case #1: 0 Case #2: 1

Hint

 The answer maybe very large, we recommend you to use long long instead of int. 
         
 
#include <iostream>
using namespace std;
typedef long long ll;
int is(ll n)
{
    ll m=n,i;
    for(i=n/10*10;i<=m;i++)
    {
        ll sum=0,t=i;
        while(t!=0)
        {
            sum+=t%10;
            t/=10;
        }
        if(sum%10==0)
            return 1;
    }
    return 0;
}
ll get(ll n)
{
    if(is(n)==1)
        return n/10+1;
    return n/10;
}
int main()
{
    int t,cnt=1;
    cin>>t;
    while(t--)
    {
        ll a,b;
        cin>>a>>b;
        cout<<"Case #"<<cnt++<<": "<<get(b)-get(a-1)<<endl;
    }
    return 0;
}

posted on 2015-05-07 15:27  星斗万千  阅读(143)  评论(0编辑  收藏  举报