If it weren't for the obscene amount of typos, I would give the book 5 stars. However, the book becomes incredibly difficult to read at times due to these typos, which force the reader to doubt himself. An egregious example of a typo occurs in the chapter on complexity theory. Here, Bona gives an example of a Turing Machine which is supposed to determine if a number is divisible by 3. Unfortunately, the machine may stay at the "start" state indefinitely, therefore never halting. There are also typos in some of the end-of-chapter equation lists.
The typos, in my opinion, warrant a 2 star deduction from an otherwise 5 star book.