Shtorm, прочитал все комментарии (2 раза). В общем я так понял если представить что полка разделена на ячейки то можно использовать размещение, а если нет , то я так и не полян как задачу решить...
Возьмите конкретное расположение книг на одной полке. Двумя перегородками разделите ряд книг на три части (каждая часть пойдет на свою полку). Сколькими способами это можно сделать? Вот и вся задача.