Шесть задач, где хватает одного рекурсивного вызова. Большинство можно решить и циклом — но смысл в том, чтобы решить их рекурсивно, сначала ответив на четыре вопроса: что означает функция, каков базовый случай, как задача уменьшается и как используется меньший ответ.
- Сначала напишите базовый случай, потом рекурсивную строку.
- Ответ может быть большим: 20! и шаги «странного алгоритма» не помещаются в
int— используйтеlong long. - Для наибольшего общего делителя входные числа могут быть отрицательными: работайте с их модулями.
- «Сумма до n» уходит до 100 000 вызовов в глубину. Если она падает в Code::Blocks, а логика верна, дайте программе стек побольше — как это сделать, показано в уроке «Стек вызовов».