hdoj4722Good Numbers【找规律】

来源:互联网 发布:mc9s12xs128单片机调试 编辑:程序博客网 时间:2024/05/29 21:34

G - Good Numbers
Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u
Submit Status Practice HDU 4722

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

21 101 20
 

Sample Output

Case #1: 0Case #2: 1

Hint

 The answer maybe very large, we recommend you to use long long instead of int. 


题意:求a到b之间一个数各位数相加能被10整除的数的个数

#include<cstdio>#include<cstdlib>#include<cstring>using namespace std;long long cal(long long n){if(n<0)return 0;if(n<=10)return 1;long long temp=n/10*10;for(long long i=temp;i<=n;++i){long long m=i;int sum=0;while(m){sum+=m%10;m/=10;}if(sum%10==0){return n/10+1;}}return n/10;}int main(){int t,k=1;long long n,a,b;scanf("%d",&t);while(t--){scanf("%lld%lld",&a,&b);printf("Case #%d: %lld\n",k++,cal(b)-cal(a-1));}return 0;}


0 0
原创粉丝点击