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