fork download
  1.  
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. unsigned long int factorial(unsigned long int);// прототип рекурсивной функции
  6. int i = 1; // инициализация глобальной переменной для подсчёта кол-ва рекурсивных вызовов
  7. unsigned long int result; // глобальная переменная для хранения возвращаемого результата рекурсивной функцией
  8.  
  9. int main(int argc, char* argv[])
  10. {
  11. int n; // локальная переменная для передачи введенного числа с клавиатуры
  12. cout << "Enter n!: ";
  13. cin >> n;
  14. for (int k = 1; k <= n; k++ )
  15. {
  16. cout << k << "!" << "=" << factorial(k) << endl; // вызов рекурсивной функции
  17. }
  18. system("pause");
  19. return 0;
  20. }
  21.  
  22. unsigned long int factorial(unsigned long int f) // рекурсивная функция для нахождения n!
  23. {
  24. if (f == 1 || f == 0) // базовое или частное решение
  25. return 1; // все мы знаем, что 1!=1 и 0!=1
  26. //cout << "Step\t"<< i <<endl;
  27. i++;
  28. //cout <<"Result= "<< result << endl;
  29. result=(f*factorial(f-1)); // функция вызывает саму себя
  30. return result;
  31. }
Success #stdin #stdout #stderr 0s 16064KB
stdin
3
stdout
Enter n!: 1!=1
2!=2
3!=6
stderr
sh: 1: pause: not found