(num_bottles: i32, num_exchange: i32)
| 1 | pub fn num_water_bottles(num_bottles: i32, num_exchange: i32) -> i32 { |
| 2 | let mut current_nil_bottles = 0; |
| 3 | let mut num_bottles = num_bottles; |
| 4 | let mut ret = 0; |
| 5 | loop { |
| 6 | ret += num_bottles; |
| 7 | current_nil_bottles += num_bottles; |
| 8 | num_bottles = 0; |
| 9 | let tmp = current_nil_bottles / num_exchange; |
| 10 | if tmp > 0 { |
| 11 | num_bottles += tmp; |
| 12 | current_nil_bottles -= tmp * num_exchange; |
| 13 | } |
| 14 | if num_bottles == 0 && tmp == 0 { break } |
| 15 | } |
| 16 | ret |
| 17 | } |
| 18 | |
| 19 | fn main() { |
| 20 | println!("{:?}", num_water_bottles(15, 4)); |
nothing calls this directly
no outgoing calls
no test coverage detected