2286 - Lucky Number
小D是个有强迫症的同学,当他看到一串串数字的时候,就要算出这些数字每一位的和,如果和不能被10整除的话,他就会十分不舒服,所以他把这些和成为Lucky Number。例如他看到了 987654321 ,这个数每一位的和是45,不能被10整除,所以他看到这个数字就很不舒服。现在给出你两个数A,B。你要在A到B的范围内找出Lucky Number的个数。
Input
第一行有T个数(T<=1000),表示有T组数据
每一行有两个整数,A 和B (0 <= A <= B <= 10^18)
Output
输出Lucky Number的个数。
Examples
Input
2 1 10 1 20
Output
0 1
Solution 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); } }