Задача "Антифакториал" - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Факториалом числа n называется число n! = 1·2·3·...·n, то есть произведение чисел от 1 до n. Ваша задача состоит в том, чтобы по данному числу x определить, является ли оно факториалом какого-либо натурального числа n. Задачу решить рекурсией.

Решение задачи: «Задача "Антифакториал"»

textual
Листинг программы
function IsFac(k, n: integer): boolean := (n > 1) and (n mod k = 0) ? IsFac(k + 1, n div k) : n = 1;
begin
  write(IsFac(1, ReadlnInteger('n = ')))
end.

Объяснение кода листинга программы

  1. Задача программы - вычислить факториал числа n.
  2. Функция IsFac(k, n) проверяет, является ли число n фактором числа k.
  3. Если n больше 1 и делится на k без остатка, то функция рекурсивно вызывает саму себя с увеличенным значением k и уменьшенным значением n.
  4. Если n равно 1, то функция прекращает работу и возвращает результат.
  5. Значение функции IsFac(1, ReadlnInteger('n = ')) выводится на экран.
  6. Переменная k инициализируется значением 1.
  7. Переменная n инициализируется значением, которое считывается с помощью функции ReadlnInteger('n = ').
  8. Результатом работы программы будет факториал числа n.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4 из 5
Похожие ответы