2286 - Lucky Number

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

D是个有强迫症的同学,当他看到一串串数字的时候,就要算出这些数字每一位的和,如果和不能被10整除的话,他就会十分不舒服,所以他把这些和成为Lucky Number。例如他看到了 987654321 ,这个数每一位的和是45,不能被10整除,所以他看到这个数字就很不舒服。现在给出你两个数AB。你要在AB的范围内找出Lucky Number的个数。

题目输入

第一行有T个数(T<=1000,表示有T组数据

每一行有两个整数,0 <= A <= B <= 10^18

题目输出

输出Lucky Number的个数。

输入/输出样例

输入格式

2
1 10
1 20

输出格式

0
1

C++解答

#include <stdio.h>
long long a,b,ans,tempa,tempb,a1,b1;
int modt(long long a)
{
    int sum=0;
    while(a!=0)
    {
        sum=a%10+sum;
        a=a/10;
    }
    return sum;
}
int calculation()
{
    long long suana,suanb,i,j;
    int sum=0;
    suana=(a1+1)*10;
    suanb=(b1)*10;
    for(i=a;i<suana;i++){
        if(modt(i)%10==0){
        sum++;
        }
    }
    for(i=suanb;i<=b;i++){
        if(modt(i)%10==0)
        sum++;
    }
    return sum;
}
int main()
{
    int t,i,j;
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
        scanf("%lld %lld",&a,&b);
        a1=a/10;
        b1=b/10;
        ans=b1-a1-1;
        ans=ans+calculation();
        printf("%lld\n",ans);
    }
}