Определение наибольшего N. Использовать функцию вычисления факториала - C (СИ)

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

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

Дано натуральное число А.Составить программу определения такого наибольшего N,что N! < A (A>1).Использовать функцию вычисления факториала.
long fakt(int n){
     return ((n==1)? 1 :n*fakt(n-1) );
     }

Решение задачи: «Определение наибольшего N. Использовать функцию вычисления факториала»

textual
Листинг программы
#include <stdio.h>
 
long fakt(int n){
     return ((n==1)? 1 :n*fakt(n-1) );
     }
 
main()
{
    long a,f=0;
    int n=1;
    printf("Enter A: ");
    scanf("%d",&a);
    do
    {
        n++;
        f=fakt(n);
     }
    while(f<a);
    printf("N = %d",n-1);
}

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

  1. Программа на языке C.
  2. Задача - найти наибольшее число N, для которого вычисленный факториал N меньше или равен введенному числу A.
  3. Факториал числа N вычисляется с помощью рекурсивной функции fakt(n).
  4. В функции fakt(n) используется базовый случай n=1, при котором факториал равен 1.
  5. В функции fakt(n) используется рекурсивный случай n*fakt(n-1), где n-1 - это факториал числа на единицу меньше n.
  6. В функции main() происходит ввод числа A с клавиатуры.
  7. Используется цикл do-while, который выполняется до тех пор, пока факториал числа N меньше или равен числу A.
  8. Внутри цикла увеличивается значение переменной N на единицу.
  9. Вычисляется факториал числа N с помощью функции fakt(n).
  10. Результатом работы программы является число N-1, которое является наибольшим числом, для которого факториал меньше или равен числу A.
  11. Число N-1 выводится на экран с помощью функции printf().

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

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