【HackerRank】 Chocolate Feast
Little Bob loves chocolates, and goes to the store with $N money in his pocket. The price of each chocolate is $C. The store offers a discount: for every M wrappers he gives the store, he'll get one chocolate for free. How many chocolates does Bob get to eat?
Input Format:
The first line contains the number of test cases T.
T lines follow, each of which contains three integers N, C and M
Output Format:
Print the total number of chocolates Bob eats.
Constraints:
2≤N
是有可能有多轮兑换的,比如N=10,C=3,M=2的时候,第一轮买到5个巧克力,用其中四个换回两块,此时手上一共有3个包装纸,第二轮换到1个巧克力,此时手上有两个包装纸,又可以换一块巧克力,一共兑换了3轮。
代码如下:
1 import java.io.*; 2 import java.util.*; 3 import java.text.*; 4 import java.math.*; 5 import java.util.regex.*; 6 7 public class Solution { 8 9 public static void main(String[] args) { 10 Scanner in = new Scanner(System.in); 11 int t = in.nextInt(); 12 for(int i = 0; i < t; i++){ 13 System.out.println(Solve(in.nextInt(), in.nextInt(), in.nextInt())); 14 } 15 } 16 17 private static long Solve(int n, int a, int b){ 18 19 //Write code to solve each of the test over here 20 int origin = n/a; 21 int total = origin; 22 while(origin/b>0){ 23 int free = origin/b; 24 origin = free + origin%b; 25 total += free; 26 } 27 return total; 28 } 29 30 31 }