B. Food Buying
Description
Mishka wants to buy some food in the nearby shop. Initially, he has s burles on his card.
Mishka can perform the following operation any number of times (possibly, zero): choose some positive integer number 1≤x≤s, buy food that costs exactly x burles and obtain ⌊x10⌋ burles as a cashback (in other words, Mishka spends x burles and obtains ⌊x10⌋ back). The operation ⌊ab⌋ means a divided by b rounded down.
It is guaranteed that you can always buy some food that costs x for any possible value of x.
Your task is to say the maximum number of burles Mishka can spend if he buys food optimally.
For example, if Mishka has s=19 burles then the maximum number of burles he can spend is 21. Firstly, he can spend x=10 burles, obtain 1 burle as a cashback. Now he has s=10 burles, so can spend x=10 burles, obtain 1 burle as a cashback and spend it too.
You have to answer t independent test cases.
input
The first line of the input contains one integer t (1≤t≤104) — the number of test cases.
The next t lines describe test cases. Each test case is given on a separate line and consists of one integer s (1≤s≤109) — the number of burles Mishka initially has.
output
For each test case print the answer on it — the maximum number of burles Mishka can spend if he buys food optimally.
Example
input
6
1
10
19
9876
12345
1000000000
output
1
11
21
10973
13716
1111111111
题意:去买东西,然后用10元就回扣1元,问能买多少钱的东西。
思路:暴力-10+1的话要超时,减法变除法做,我们知道每次用10元都能回扣1元,于是我们就除9就可以了,但要注意的是9的倍数是要少一块钱的,比如说9,只能买到9元的东西,18,27。。。也如此。
传送门:http://codeforces.com/contest/1296/problem/B
AC代码:
#include<iostream>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
if(n%9) cout<<n+n/9<<endl;
else cout<<n+n/9-1<<endl;
}
return 0;
}