![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 29.12.2011
Сообщений: 8
|
![]()
Нужно написать функцию для вычисления факториала до 100. а результаты записать в виде много байтового числа. Подкиньте идею.или можете даже код)))
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 05.02.2011
Сообщений: 119
|
![]()
Идея Тут.
Много байтового числа это long или int. Код:
Если что - то не так - извиняйте. |
![]() |
![]() |
![]() |
#3 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Asdprom, проблема в том, что 100!=933262154439441526816992388562 66700490715968264381621468592963895 21759999322991560894146397615651828 62536979208272237582511852109168640 00000000000000000000000 (по заявлению Wolfram Alpha).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#4 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
![]()
BDA дело говорит. Прикольнула задача, написал на delphi, правда при 100! выдаёт первые 14 цифр правильно, а 15 округляет. То есть
Цитата:
Кстати, что значит в виде много байтового числа? Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 19.04.2012 в 23:05. |
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]() Цитата:
Многобайтовое число - подразумевается число, хранимое в памяти и обрабатываемое как массив. Т.е. определяется новый тип и для него определяется операция умножения. Остальное - тривиально. |
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 05.02.2011
Сообщений: 119
|
![]()
Решается 2 - умя строчками кода в библиотеке GMP
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Если в библиотеке есть функция факториала, то и одной строчки много.
Или в самой библиотеке факториал большого числа вычисляется двумя строчками? PS. Когда речь идет об объеме кода при реализации некоторого алгоритма, ссылаться на библиотеку - дурной тон. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
на ассемблере тут вообще проблем не вижу: массивчик байт на 100 (влом пересчитывать разряды в приведённом выше числе) для хранения результата и два цикла:
1) от 1 до 100 2) умножение содержимого массива побайтно с накоплением (а лучше сразу двойными словами). 1 умножаем байт на байт 2 младший байт на место, а старший запоминаем 3 умножаем следующий байт на байт 4 прибавляем старший байт из предыдущей операции 5 сохраняем младший байт и запоминаем старший 6 повторяем с п.3 пока число не закончится. т.е. обычное умножение в столбик, только вместо десятиразрядных чисел можно использовать те, которые понимает процессор... собственно, элементарная задача с использованием больших чисел)
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 09.06.2012 в 09:07. |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматная программа вычисления факториала (Pascal) | Iriska_7 | Помощь студентам | 1 | 27.02.2012 13:06 |
С++ Написать программу вычисления факториала | vovanmiron | Фриланс | 12 | 07.11.2011 22:32 |
вычисления факториала в Delphi | fleepone | Помощь студентам | 4 | 24.10.2011 09:08 |
В коде вычисления факториала, выдается ошибка | Von | C++ Builder | 13 | 13.10.2010 11:47 |
Функция вычисления факториала (Паскаль)) | Doublefaced | Помощь студентам | 12 | 01.10.2009 23:34 |