Write a program that computes the minimum number of steps required to go from a starting number to an ending number given the following rules:
- A number may be doubled
- You may add 2 to a number
- A number may be halved if it is even
Example:
- 2 → 9
- Potential steps to get from 2 to 9:
- 2, 4, 8, 16, 18, 9 (This can be done twice, doubling 2 or 2 + 2)