Составить программу определения такого наибольшего N,что N! < A - C (СИ)
Формулировка задачи:
Всем привет.Помогите,пожалуйста,написать к этой задаче код и блок-схему(первоочередно),буду очень признателен.
Дано натуральное число А.Составить программу определения такого наибольшего N,что N! < A (A>1)
Ребяяята,помогайте =С
Решение задачи: «Составить программу определения такого наибольшего N,что N! < A»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> // Факториал определён только для целых неотрицательных чисел. // функция работает для небольших положительных целых чисел long long factorial( int n ) { long long result = 1; int i; for ( i = 2; i <= n; ++i ) result *= i; return result; } int main( void ) { int a; while ( 1 ) { printf( "Введите натуральное число A " ); scanf( "%d", &a ); if ( a <= 1 ) { printf( "Неверный ввод!\n" ); continue; } break; } int n = 2; while ( factorial( n++ ) < a ) ; printf( "Искомая величина N = %d", n - 2 ); return EXIT_SUCCESS; }
Объяснение кода листинга программы
- В программе определена функция
factorial
, которая вычисляет факториал числаn
. - В функции
main
создается бесконечный цикл, в котором происходит запрос на ввод числаa
. - Если число
a
меньше или равно 1, то выводится сообщение об ошибке и цикл продолжается. - Если число
a
больше 1, то цикл прерывается и выполняется следующий код. - Переменная
n
инициализируется значением 2. - В цикле
while
вычисляется факториал числаn
с помощью функцииfactorial
. - Если факториал числа
n
меньше числаa
, то цикл продолжается. - Когда факториал числа
n
становится больше или равен числуa
, цикл прерывается. - Выводится значение переменной
n
минус 2, которое является искомой величинойN
. - Программа завершается с кодом успеха
EXIT_SUCCESS
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д