Можно подробней. Как идёт за первым разом, за вторым.... Как происходит этот процес,хочется понять. Я понимаю что происходит такое,переменной answer
присваивается вот так:
1) Из main происходит вызов factr (4)
2) Попадаем в функцию factr с параметром n, равным 4.
3) В ф-ии factr написано: если n != 1, то вернуть результат, равный (для случая n=4) четырем, умноженным на результат вызова factr (4-1)
4) Попадаем в функцию factr с параметром n, равным 3.
5) В ф-ии factr написано: если n != 1, то вернуть результат, равный (для случая n=3) трем, умноженным на результат вызова factr (3-1)
6) Попадаем в функцию factr с параметром n, равным 2.
7) В ф-ии factr написано: если n != 1, то вернуть результат, равный (для случая n=2) двум, умноженным на результат вызова factr (2-1)
8) Попадаем в функцию factr с параметром n, равным 1.
9) В ф-ии factr написано: если n = 1, то вернуть 1. Возвращаем (в factr) 1.
10) Возвращаем (в factr) 2 * <результат п.9, т.е. 1)>, т.е. 2
11) Возвращаем (в factr) 3 * <результат п.10, т.е. 2)>, т.е. 6
12) Возвращаем (уже в main) 4 * <результат п.11, т.е. 6)>, т.е. 24.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.