I like Concrete Mathematics by Graham, Knuth and Patashnik:
This book introduces the mathematics
that supports advanced computer
programming and the analysis of
algorithms. The primary aim of its
well-known authors is to provide a
solid and relevant base of
mathematical skills - the skills
needed to solve complex problems, to
evaluate horrendous sums, and to
discover subtle patterns in data. It
is an indispensable text and reference
not only for computer scientists - the
authors themselves rely heavily on it!
- but for serious users of mathematics in virtually every discipline.
Concrete Mathematics is a blending of
CONtinuous and disCRETE mathematics.
"More concretely," the authors
explain, "it is the controlled
manipulation of mathematical formulas,
using a collection of techniques for
solving problems." The subject matter
is primarily an expansion of the
Mathematical Preliminaries section in
Knuth's classic Art of Computer
Programming, but the style of
presentation is more leisurely, and
individual topics are covered more
deeply. Several new topics have been
added, and the most significant ideas
have been traced to their historical
roots. The book includes more than 500
exercises, divided into six
categories. Complete answers are
provided for all exercises, except
research problems, making the book
particularly valuable for self-study.