Source: https://clas.iusb.edu/docs/CSCI/C201-PracticeProblems.pdf