Определение наибольшего 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);
}
Объяснение кода листинга программы
- Программа на языке C.
- Задача - найти наибольшее число N, для которого вычисленный факториал N меньше или равен введенному числу A.
- Факториал числа N вычисляется с помощью рекурсивной функции fakt(n).
- В функции fakt(n) используется базовый случай n=1, при котором факториал равен 1.
- В функции fakt(n) используется рекурсивный случай n*fakt(n-1), где n-1 - это факториал числа на единицу меньше n.
- В функции main() происходит ввод числа A с клавиатуры.
- Используется цикл do-while, который выполняется до тех пор, пока факториал числа N меньше или равен числу A.
- Внутри цикла увеличивается значение переменной N на единицу.
- Вычисляется факториал числа N с помощью функции fakt(n).
- Результатом работы программы является число N-1, которое является наибольшим числом, для которого факториал меньше или равен числу A.
- Число N-1 выводится на экран с помощью функции printf().