[Solution] LightOJ1163 Bank Robbery Enumeration + Math Knowledge



In one very cold morning, Mark decides to rob a bank. But while trying hacking into the security system, he found that it is locked by some random value. He also found a pattern on the random number, that is if he chops off the last digit of a number A, he gets a new number B. Then he calculates (A-B). He checked the first few numbers of the security system which exactly equals (A-B). Being very excited to have found the pattern, he learns that there are like 500 levels on the security system. He calculated all those numbers by hand but took a lot of time. As a sign of his accomplishment he left a note on the vault stating the pattern. You were the first officer on the crime scene and you’ve obtained the note. So if you can figure out A from (A-B), you can rob the bank very quick!

By the way, Mark succeeded in robbing the bank but had a heart attack on the getaway car and crashed.


Input starts with an integer T (≤ 500), denoting the number of test cases.

Each line contains a single positive integer between 10 and 1018 (inclusive), giving the value of A-B.


For each case, print the case number and the possible values of A in ascending order. Separate consecutive numbers with a single space.

Sample Input






Sample Output

Case 1: 34

Case 2: 19 20

Case 3: 13

Case 4: 18

Write the equation, enumerate to find the solution

typedef unsigned long long ull;
int t,ca;
ull a,b;
int main()
        printf("Case %d:",++ca);
        for(int i=9;i>=0;i--)
            if((10*b-i)%9==0)printf(" %llu",(10*b-i)/9);
    return 0;