Hacker Rank Solutions: Chocolate Feast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| def exchange(wrappers, number_for_free)
return 0 if wrappers < number_for_free
free_sweets = wrappers / number_for_free
left_over = wrappers % number_for_free
if left_over == 0 && free_sweets < number_for_free
return free_sweets
else
return free_sweets + exchange(free_sweets + left_over, number_for_free)
end
end
test_cases = $stdin.gets.to_i
test_cases.times do
money, chocolate_price, number_for_free = $stdin.gets.split(' ').collect{ |x| x.to_i }
bought_sweets = money/chocolate_price
$stdout.puts bought_sweets + exchange(bought_sweets, number_for_free)
end
|