Целое число вводится с клавиатуры, определяем, является ли оно факториалом какого-либо числа

Обновлено: 02.07.2024

В этом уроке мы узнаем, как найти факториал числа в java. Факториал числа — это произведение всех целых чисел от 1 до этого числа. Но прежде чем двигаться дальше, если вы не знакомы с концепцией циклов в Java, ознакомьтесь со статьей о циклах в Java.

Ввод: введите число: 5

Вывод: Факториал введенного числа: 120

Программа 1. Найдите факториал числа

В этой программе мы узнаем, как найти факториал числа с помощью цикла while.

Алгоритм

Создайте экземпляр класса сканера.

Объявите переменную.

Попросите пользователя инициализировать переменную.

Объявите переменную цикла и другую переменную для хранения факториала числа.

Инициализируйте обе переменные равными 1.

Используйте цикл while для вычисления факториала.

Выполнять цикл до тех пор, пока переменная цикла не станет меньше или равна числу.

Обновлять факториал на каждой итерации.

Увеличивать значение переменной цикла на каждой итерации.

Выведите факториал числа.

Ниже приведен пример кода для печати факториала числа в Java.


Введите число: 5
Факториал числа: 120

Программа 2: Java-программа для нахождения факториала числа

В этой программе мы узнаем, как найти факториал числа с помощью цикла for.

Алгоритм

Создайте экземпляр класса сканера.

Объявите переменную.

Попросите пользователя инициализировать переменную.

Объявите переменную для хранения факториала числа.

Инициализируйте переменную равным 1.

Используйте цикл for для вычисления факториала.

Обновите переменную факториала, умножив ее на переменную цикла на каждой итерации.

Выведите факториал числа.

Ниже приведен пример кода для печати факториала числа в Java.


Введите число: 4
Факториал числа: 24

Программа 3: Java-программа для нахождения факториала числа

В этой программе мы найдем факториал числа, используя рекурсию с заданными пользователем значениями. Здесь мы попросим пользователя ввести значение, а затем вычислим факториал, рекурсивно вызвав функцию.

Алгоритм

Объявите переменную для хранения числа.

Попросите пользователя инициализировать номер.

Проверить, можно ли вычислить факториал или нет.

Если число больше и равно 0, вызовите рекурсивную функцию для вычисления факториала введенного числа.

Если число меньше 0, вывести сообщение о невозможности вычисления факториала.

Если введенное число равно 0 или 1, вернуть 1.

Если введенное число отличается от 0 или 1, вычислите факториал, рекурсивно вызвав тот же метод.

Вернуть результат.

Вывести факториал введенного числа.

Ниже приведен пример кода для печати факториала числа в Java.


Введите число: 8
Факториал введенного числа: 40320

Программа C для факториала для нахождения факториала числа

Факториал положительного целого числа (числа) представляет собой сумму умножения всех целых чисел, меньших этого положительного целого числа. Например, факториал 5 равен 5 * 4 * 3 * 2 * 1, что равно 120.

Факториал обозначается знаком "!". Итак, предположим, вы хотите найти факториал числа n, тогда n! = n * (n-1) * (n-2) * (n-3) … *.

Теперь давайте посмотрим, как написать программу на C для факториала числа?

Алгоритм программы C для факториала

Алгоритм программы C для нахождения факториала числа:

  • Запустить программу
  • Попросите пользователя ввести целое число, чтобы найти факториал.
  • Прочитайте целое число и присвойте его переменной
  • От целого числа до 1 умножьте каждую цифру и обновите конечное значение.
  • Конечным значением в конце всех операций умножения до 1 является факториал.
  • Завершить программу

Псевдокод программы C для Factorial

Используя приведенный выше алгоритм, мы можем создать псевдокод для программы на C, чтобы найти факториал числа, например:

Теперь, когда мы знаем базовый алгоритм и псевдокод для написания программы C для факториала, давайте начнем реализовывать ее, используя различные методы.

Теперь давайте начнем реализовывать его, используя различные методы.

Программа C для факториала с использованием цикла For

Мы начнем с использования цикла for для написания программы на C для факториала числа. В программе будет целочисленная переменная со значением 1.Цикл for будет увеличивать значение на 1 с каждой итерацией, пока число не сравняется с числом, введенным пользователем. Конечным значением переменной факта будет факториал числа, введенного пользователем.

Пример:

printf("Введите число, чтобы найти факториал: ");

C_Program_for_Factorial_1.

для(х=1;х

Программа C для факториала с использованием цикла While

В этом примере мы реализуем алгоритм с использованием цикла while и найдем факториал числа.

printf("Введите число, чтобы найти факториал: ");

C_Program_for_Factorial_2

пока(х

Программа C для факториала с использованием рекурсии

Теперь мы напишем факториальную программу, используя рекурсивную функцию. Рекурсивная функция будет вызывать себя до тех пор, пока значение не будет равно 0.

Теперь мы напишем программу на C для факториала, используя рекурсивную функцию. Рекурсивная функция будет вызывать себя до тех пор, пока значение не будет равно 0.

Пример:

printf("Факториал числа равен %d", fact(x));

// Рекурсивная функция для поиска факториала

вернуть y * факт(y - 1);

Вывод:

C_Program_for_Factorial_3

Программа C для факториала с использованием тернарного оператора

Тернарный оператор похож на условное обозначение if. другое заявление. Он предоставляет два условия и операторы, которые должны выполняться на основе условий. Вот программа C для факториала с тернарным оператором.

Вот факториальная программа с тернарным оператором.

printf("Факториал %d равен %d",

// Использование тернарного оператора

возврат (x == 1 || x == 0)

Вывод:

C_Program_for_Factorial_4.

Программа C для факториала с использованием метода tgamma()

Функция tgamma() — это библиотечная функция, определенная в библиотеке math.h в программировании на C. Он вычисляет гамма-функцию переданного аргумента.

Давайте воспользуемся этой функцией для написания факториальной программы на C.

Вывод:

C_Program_for_Factorial_5.

Примечание. Функция tgamma() работает только с небольшими целыми числами, поскольку C не может хранить большие значения. Кроме того, для целых чисел выше 5 вам нужно будет добавить 1 к конечному результату, чтобы получить факториал.

Программа C для факториала с использованием функции

Вы также можете создать собственную функцию для нахождения факториала заданного числа. В приведенном ниже коде показано использование функций для поиска факториала.

Пример:

printf("Введите число, чтобы получить факториал: ");

printf("Факториал %d: %d",n,fact);

int findFact(int n)

C_Program_for_Factorial_6

для(х=1;х

Новый курс: разработка полного стека для начинающих

Программа C для факториала с использованием указателей

Для этого примера мы создадим программу на C для нахождения факториала числа с помощью указателей C. Ниже приведен код использования указателей для поиска факториалов.

printf("Введите число, чтобы получить факториал: ");

printf("Факториал %d: %d",n,fact);

void findFact(int n,int *fact)

C_Program_for_Factorial_7

для(х=1;х

Программа C для факториала

Помимо простого нахождения факториала для одного числа, мы также можем написать программу на C для нахождения факториалов нескольких чисел в ряду. В приведенном ниже коде показано, как найти факторный ряд чисел в диапазоне.

printf("Введите начальный диапазон: ");

printf("Введите конечный диапазон: ");

printf("Факторный ряд заданного диапазона: ");

C_Program_for_Factorial_8.

для(n=s_range;n

Заключение

В этой статье вы узнали, как писать программы на C для факториалов разными способами.Факториальная программа C — одна из основных программ языка C, которая используется для введения в различные понятия, такие как циклы, операторы и функции. Теперь вы можете использовать программы для нахождения факториала любого числа.

Если вы хотите усовершенствовать свои знания в области программирования на C, вы можете зарегистрироваться на нашей платформе SkillUp. Платформа предлагает несколько бесплатных курсов, которые помогут вам получить четкое представление об основах многочисленных языков программирования, включая C. Однако, если вы хотите преуспеть в разработке программного обеспечения, очень важно выучить несколько языков, а не придерживаться одного. Наш полный сертификационный курс по веб-разработке содержит прикладные учебные материалы, которые помогут вам познакомиться с различными концепциями и инструментами программирования, чтобы стать отличным разработчиком программного обеспечения.

Об авторе

Простое обучение

Simplilearn — один из ведущих мировых поставщиков онлайн-обучения по цифровому маркетингу, облачным вычислениям, управлению проектами, науке о данных, ИТ, разработке программного обеспечения и многим другим новым технологиям.

Пользовательские функции

Как следует из названия, эти функции определяются и создаются пользователями. Функции в C++ согласуются с понятием функций в математике. Например, они допускают функциональную композицию, такую ​​как f(f(p),q,f(f)). Однако функции C++ либо возвращают одно значение, либо не возвращают никакого значения. Рассмотрим следующий пример. Это определяемая пользователем функция, которая вычисляет значение факториала небольшого целого числа.

Целочисленная переменная n является входом функции и также называется параметром функции.

Если функция определена после функции main(), то ее прототип должен быть указан int fact (int);

вверху, чтобы компилятор не помечал ошибку прямой ссылки. В определении прототипа указывается имя функции, количество и тип каждого параметра, а также тип выходных данных.

Все фрагменты кода, такие как прототип функции, вызывающая основная программа и полное определение функции, показаны ниже

Обычные результаты выполнения этого кода показаны ниже:

Примеры функций
Пример 1

Напишите функцию для определения максимума двух целых чисел x и y. Ответ:

Эта функция принимает на вход два целых числа x и y. Он выбирает x как результат, если x больше, чем y; в противном случае для результата выбирается y.

Пример 2:

Напишите функцию, которая находит максимальное из трех целых чисел x, y и z. Ответ:

Чтобы начать с x, предполагается, что это результат. Затем результат сравнивается с y и z. если y или z больше, чем результат, y или z выбирается для результата соответственно.

Одна и та же функция может состоять из функции max2, как показано ниже:

Этот расчет показывает использование функциональной композиции max(x, y, z) = max(x, max(y,z))

Пример 3

Напишите функцию, которая возвращает количество трехзначных натуральных чисел, которые делятся либо на 4, либо на 5, но не на оба числа.

Ответ: эта функция сначала просматривает все возможности для трехзначных чисел, затем проверяет, делится ли это текущее значение «i» на 4 ИЛИ 5, и в то же время проверяет, не является ли оно двойным подсчетом другого числа. .

Пример 4

Напишите функцию, которая будет возвращать истину, если заданное число n является простым, иначе она должна возвращать ложь.

Ответ: Эта функция проверяет все делители от 2 до n/2 -1 включительно. Он выйдет заранее, если найдет делитель до завершения цикла. Если код завершает цикл, это означает, что число не имеет делителя и, следовательно, является простым числом.

Пример 5

Напишите функцию, которая будет возвращать true, если заданное число является палиндромом, в противном случае она должна возвращать false. Число называется палиндромом, если оно читается одинаково независимо от того, просматривается ли оно слева направо или наоборот. Например, 506605 — это палиндром, а 5123 — нет.

Ответ: Логика палиндрома состоит в том, чтобы перевернуть заданное число n. Это делается циклом while. Заданное число n является палиндромом тогда и только тогда, когда исходное n и его обращение идентичны.

Иногда вычисления, которые вам нужно выполнить, чтобы ответить на вопрос в измерении количественного мышления общего теста GRE ®, требуют много времени, например, деление в длинных числах, или включают квадратные корни. Для таких расчетов вы можете использовать калькулятор, прилагаемый к вашему тесту.

Хотя калькулятор может сократить время, необходимое для выполнения вычислений, имейте в виду, что калькулятор предоставляет результаты, которые дополняют, но не заменяют ваши знания математики. Вы должны использовать свои математические знания, чтобы определить, являются ли результаты калькулятора разумными и как их можно использовать для ответа на вопрос.

  • Большинство вопросов не требуют сложных вычислений, поэтому не пользуйтесь калькулятором только потому, что он доступен.
  • Используйте его для вычислений, которые, как вы знаете, утомительны, например, для деления в длинную сторону; квадратные корни; а также сложение, вычитание или умножение чисел, состоящих из нескольких цифр.
  • Не используйте его для простых вычислений, которые быстрее выполнить в уме, таких как и
  • Не используйте его для введения десятичных знаков, если вас просят дать ответ в виде дроби.
  • На некоторые вопросы можно быстрее ответить, рассуждая и оценивая, чем используя калькулятор.
  • Если вы пользуетесь калькулятором, оцените ответ заранее, чтобы определить, является ли ответ калькулятора "приблизительным". Это может помочь вам избежать ошибок при вводе ключей.

Рекомендации по работе с экранным калькулятором

    Когда вы используете компьютерную мышь или клавиатуру для работы с калькулятором, следите за тем, чтобы не ошибиться при вводе числа или операции.

Обратите внимание на все кнопки калькулятора, включая Transfer Display.

Ниже приведены некоторые примеры вычислений с использованием калькулятора.

Введите, чтобы получить 7,365. Или введите, чтобы получить 3,365, а затем введите, чтобы получить 7,365 .

Поскольку деление имеет приоритет над сложением в порядке операций, вам необходимо переопределить этот приоритет, чтобы вычислить эту дробь. Вот два способа сделать это. Вы можете использовать скобки для сложения в числителе, вводя, чтобы получить Или вы можете использовать знак равенства после 9.3, вводя, чтобы получить тот же результат. Во втором случае обратите внимание, что нажатие первого обязательно, потому что без него будут ошибочные вычисления. Между прочим, точное значение выражения — это повторяющаяся десятичная дробь, где цифры 285714 повторяются без конца, но калькулятор округляет десятичную дробь до

Найти длину гипотенузы прямоугольного треугольника с катетами 21 и 54 с точностью до 0,01; то есть использовать теорему Пифагора и вычислить

Введите, чтобы получить 57,939624. Опять же, нажатие перед является важным, потому что это приведет к ошибочному вычислению. Это связано с тем, что квадратный корень будет иметь приоритет над умножением в порядке операций. Обратите внимание, что можно использовать круглые скобки, как в , но они не обязательны, поскольку умножение уже имеет приоритет над сложением. Между прочим, точный ответ — это бесконечное, неповторяющееся десятичное число или иррациональное число, но калькулятор округляет десятичное число до 57,939624. Наконец, обратите внимание, что задача требует ответа с точностью до 0,01, поэтому правильный ответ — 57,94 .

Перевести 6 миль в час в футы в секунду.

Решение этой проблемы использует коэффициенты преобразования и следующим образом:

Введите, чтобы получить 8.8. Или введите, чтобы получить результат 31 680, а затем введите, чтобы получить 8,8 фута в секунду .

На мероприятии по сбору средств 43 участника пожертвовали по 60 долларов США каждый, 21 участник пожертвовал по 80 долларов США и 16 участников пожертвовали по 100 долларов США каждый. Каково было среднее (среднее арифметическое) пожертвование на одного участника в долларах?

Решением этой проблемы является вычисление средневзвешенного значения. Для этого вычисления можно использовать кнопки памяти и скобки следующим образом:

чтобы получить 73,25 доллара США или 73,25 доллара США за участника .

При первом нажатии кнопки число на дисплее калькулятора сохраняется в памяти, а слева от дисплея появляется буква М, указывающая на то, что функция памяти используется. Каждое последующее использование кнопки добавляет число на текущем дисплее к числу, хранящемуся в памяти, и заменяет число, хранящееся в памяти, суммой. Когда кнопка нажата в приведенном выше вычислении, отображается текущее значение в памяти, 5860. Чтобы очистить память, используйте кнопку, и М рядом с дисплеем исчезнет.

f = factorial( n ) возвращает произведение всех положительных целых чисел, меньших или равных n , где n — неотрицательное целое число. Если n массив, то f содержит факториал каждого значения n . Тип данных и размер f такие же, как у n .

Факториал n обычно записывается в математической записи с использованием символа восклицательного знака как n!. Обратите внимание, что н! не является допустимым синтаксисом MATLAB® для вычисления факториала n.

Примеры

В этом случае f имеет точность до 15 цифр, 1.12400072777760e+21 , поскольку числа с двойной точностью имеют точность только до 15 цифр.

Сбросьте формат вывода до значения по умолчанию.

Факториал элементов массива

Факториал целых чисел без знака

Входные аргументы

n — входные значения
скаляр, вектор или массив действительных неотрицательных целых чисел

Введите значения в виде скаляра, вектора или массива действительных неотрицательных целых чисел.

Пример: 5

Пример: [0 1 2 3 4]

Пример: int16([10 15 20])

Типы данных: одиночные | двойной | интервал8 | интервал16 | интервал32 | интервал64 | uint8 | uint16 | uint32 | uint64

Ограничения

Для входных данных двойной точности результат будет точным, если n меньше или равно 21 . Большие значения n дают результат правильного порядка величины и точен для первых 15 цифр. Это связано с тем, что числа с двойной точностью точны только до 15 цифр.

Для входных данных с одинарной точностью результат будет точным, если n меньше или равно 13 . Большие значения n дают результат, который имеет правильный порядок величины и является точным для первых 8 цифр. Это связано с тем, что числа одинарной точности точны только до 8 цифр.

В приведенной ниже таблице описывается поведение насыщения каждого типа данных при использовании с функцией факториала. Значения в последнем столбце указывают точку насыщения; то есть первое положительное целое число, фактический факториал которого больше, чем максимальное представимое значение в среднем столбце. Для single и double все значения, превышающие максимальное значение, возвращаются как Inf. Для целочисленных типов данных значение насыщения равно максимальному значению в среднем столбце.

Расширенные возможности

Генерация кода C/C++
Создайте код C и C++ с помощью MATLAB® Coder™.

Генерация кода GPU
Создавайте код CUDA® для GPU NVIDIA® с помощью GPU Coder™.

Среда на основе потоков
Выполнение кода в фоновом режиме с помощью MATLAB® backgroundPool или ускорение кода с помощью Parallel Computing Toolbox™ ThreadPool.

Эта функция полностью поддерживает среды на основе потоков. Для получения дополнительной информации см. раздел «Выполнение функций MATLAB в многопоточной среде».

Массивы графических процессоров
Ускорьте код, запустив его на графическом процессоре (GPU) с помощью Parallel Computing Toolbox™.

Примечания и ограничения по использованию:

64-битные целые числа не поддерживаются.

Дополнительную информацию см. в разделе Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).

Распределенные массивы
Разбейте большие массивы на разделы объединенной памяти вашего кластера с помощью Parallel Computing Toolbox™.

Примечания и ограничения по использованию:

64-битные целые числа не поддерживаются.

Дополнительную информацию см. в разделе Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).

Читайте также: