Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 26.01.2013
Сообщений: 18

Написать программу, которая читает неотрицательное целое число, рассчитывает и печатает его факториал

22.06.2013, 14:58. Показов 5299. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Факториал неотрицательного целого числа n записывается как n! И определяется следующим образом N! = n*(n-1)*(n-2)*…… для n>=0;
Написать программу , которая читает неотрицательное целое число , рассчитывает и печатает его факториал.
 Комментарий модератора 
Запрещено дублировать тему в одном или нескольких разделах!
Дубль закрыт.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.06.2013, 14:58
Ответы с готовыми решениями:

Написать программу, которая читает неотрицательное целое число, рассчитывает и печатает его факториал
11. Факториал неотрицательного целого числа n записывается как n! И определяется следующим образом N! = n*(n-1)*(n-2)*…… для...

Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в десятичную.
Задано неотрицательное целое число в двоичной системе счисления. Требуется перевести его в десятичную. Ввод В первой строке...

Написать программу, которая вводит номер некоторого года и печатает его название по старояпонскому календарю
Задание )В старояпонском календаре был принят 12-летний цикл. Годы внутри цикла носили названия животных: крысы, коровы, тигра, зайца,...

24
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,665
Записей в блоге: 14
25.06.2013, 16:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от nike00 Посмотреть сообщение
число в строку, строку - в массив, а дальше как на листочке учили умножать в столбик
на выходе стринг, которому уже нету разницы сколько в нем будет элементов
Если массив будет иметь столько элементов, что не будет помещаться в памяти, посчитать тоже не получится. Например 101010! - это тоже целое неотрицательное число, и оно вряд ли поместится в память, так что у этого метода тоже есть ограничения.
А для других чисел, которые обычно используются в расчётах и вмещаются в int, это будет работать много медленнее, чем все перечисленные выше методы
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
25.06.2013, 17:00
@tezaurismosis, для этого можно реализовать блочную арифметику. создаем массив(список), каждый элемент которого хранит свой разряд, например первый элемент от 0 до 999 999, второй от 1000 000 до 999 999 000 000(милионы милионов), третий - милионы милионов милионов и т.д. при умножении двух элементов(напр. 6 и 3) пулачаем некорорый промежуточный результат - произведение.
остаток от деления произведения на разрядность(милион) запишем в разряд 6+3 -1, деление без остатка - в разряд 6+3.
этот метод позволяет с неограниченой точностью считать ооочень большие числа, ограниченные только ОП.
посчитаем = https://www.cyberforum.ru/cgi-bin/latex.cgi?{10}^{{10}^{10}} = {10}^{10000000000} - 1 666 666 667 элементов c с разрядностью милион, для которого достаточно типа int - 4 байта. то есть порядка всего нескольких мегабайт.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.06.2013, 17:06
@Learx, вопрос еще в том, чтобы дожить до счастливого момента расчета этого числа. Со структурой BigInteger рассчет факториала всего лишь от 300 000 у меня занял почти полчаса на core i7-3615qm, что уж говорить про подобные числа.
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
25.06.2013, 17:36
@Psilon, тоже верно .. тут уже стандартными процессорами не обойтись ... нужно специализированную схему клепать ....
но все равно при таком подходе нет промежуточных преобразований и умножение двух чисел выполняется за m*n*5 операций(умножаем, остаток от деления - сумма, деление без остатка - сумма), где m и n - разрядность(в нашей системе) операндов. при чем деления можно заменить разницей и смещением разрядов, что быстрее будет.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9674 / 4826 / 763
Регистрация: 17.04.2012
Сообщений: 9,665
Записей в блоге: 14
25.06.2013, 19:56
@Learx, я с вами согласен, что числа можно вычислять большие, но предел этому всё равно есть. И у меня получились другие результаты. И ещё - вы посчитали количество цифр в числе 101010, а вы заметили, что я ещё написал в конце написал знак "!", то есть я предлагаю вычислить факториал для этого числа. Давайте посчитаем сколько места нам нужно:
Если считать факториал по упрощённой формуле Стирлинга, мы получим
101010! ≈ (101010)101010, т.е. число, у которого (1010)101010 знаков, для чего нужно как минимум 10101010 Гб памяти (если считать, что под каждый знак мы выделили 1 байт). Нигде не найдётся такого объёма памяти.
Но это всё лишь теоретический блуд - кому понадобится вычислять такое число?! Я лишь хотел передать суть - границы есть и у этого метода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2013, 19:56

Написать программу, которая подсчитывает: является ли заданное целое число четным (нечетным)
Написать программу, которая подсчитывает: является ли заданное целое число четным (нечетным)

Написать программу, которая рассчитывает значение выражения с использованием оператора for
Написать прогу, которая рассчитывает значение выражения с использованием оператора for. Запрещается использовать функции класса Math....

Дайте комментарии к программе, которая рассчитывает факториал числа
Программа использует небезопасный код, рассчитывает факториал числа 12 и выполняет операции сложения, вычитания, умножения, деления,...

Дано целое неотрицательное число N. Найти число, составленное теми же десятичными цифрами, что и N, но в обрат
Дано целое неотрицательное число N. Найти число, составленное теми же десятичными цифрами, что и N, но в обратном порядке. Запрещено...

Написать программу, которая считывает целое число, определяет и печатает, четное оно или нечетное
Привет,народ!Помогите написать программу ,которая считывает целое число, определяет и печатает, четное оно или нечетное.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru