IGT Interview Question

General algorithm questions, some logic, and then actual implementation via using inheritance and abstract classes.