Решение, конечно, корявенькое, но все работает, вывод правильный. Что не так? Может через рекурсию не хочет принимать?