Найти факториал числа, пользуясь только указателями - C (СИ) (72369)
Формулировка задачи:
Написал такое:
Выдает ошибку, что рекурсия вызывает переполнение стэка. Где накосячил?
// Найти факториал числа, пользуясь только указателями.
#include <iostream>
using namespace std;
long Fact(long*);
void main()
{
long number = 5;
long* result = nullptr;
*result = Fact(&number);
cout << "Factorial of " << number << " is " << *result << endl;
}
long Fact(long *ptr)
{
long temp = (*ptr) - 1;
return (*ptr) * Fact(&temp);
}Решение задачи: «Найти факториал числа, пользуясь только указателями»
textual
Листинг программы
long* result = nullptr; *result = Fact(&number);
Объяснение кода листинга программы
В данном коде:
- Объявляется указатель на длинное целое число
resultи инициализируется значениемnullptr(указатель, не указывающий на конкретное значение). - По указателю
resultзаписывается результат вызова функцииFactс аргументомnumber. ФункцияFactне объявлена в данном коде, поэтому необходимо дополнительная информация о её определении.