Садовник-художник

Codes Inc; Room #007 - 1 Садовник посадил N (1 <= N <= 50) деревьев в один ряд. После посадки деревьев садовнику нужно их покрасить. В его распоряжении есть краска трех цветов: белая, синяя и оранжевая. Сколько способов покраски деревьев есть у него, если никакие два соседних дерева нельзя красить в одинаковый цвет? Напишите функцию public static long count(int n), которая возвращает количество способов покраски n деревьев.