HDU 4722 Good Numbers(找规律)

来源:互联网 发布:飞机升阻比知乎 编辑:程序博客网 时间:2024/06/06 03:45

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.          
 
#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;}

0 0
原创粉丝点击