Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
1

"Длинная" арифметика в рекурсии

30.08.2011, 21:26. Показов 1960. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как реализовать длинную арифметику в рекурсии типа N! = 1 * 2 * 3 * … * (N-1) * N. Да и вообще, не откажусь от информации в общем о длинной арифметике.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.08.2011, 21:26
Ответы с готовыми решениями:

Длинная арифметика
Нужно написать программу которая полностью выводит число 2^-200. (желательно с комментариями, для...

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

Длинная арифметика
Очень важный аспект в программировании - длинная и быстрая арифметика. Собственно в этой теме я...

Длинная арифметика
Ребята,объясните как решить задачу , напишите хоть часть кода. Пусть даны числа a , b . Найти...

Длинная арифметика
:senor: Здраствуйте, пишу модуль длинной математики. В принципе, работоспособность у него...

23
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
30.08.2011, 21:50 2
Я что-то не понял, сегодня гугл что, массовый бан устроил?
http://lmgtfy.com/?q=%D0%B4%D0... 0%BA%D0%B0
Ну, и чтобы сообщение не было спамом))
http://ru.wikipedia.org/wiki/Длинная_арифметика
2
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
31.08.2011, 01:06 3
Цитата Сообщение от ITZver Посмотреть сообщение
Как реализовать длинную арифметику в рекурсии типа N! = 1 * 2 * 3 * … * (N-1) * N.
Очень просто:
C++
1
2
3
4
5
 unsigned int fact( unsigned int f)
{
    if ( f <= 1) return 1;
    return f * fact( f - 1);
}
Проверка на меньше либо равно 1, потому что полагают факториал от нуля равен единице.
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
31.08.2011, 01:08 4
An1ka, а длинная арифметика где?
2
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
31.08.2011, 01:39  [ТС] 5
Как я понимаю, длинная арифметика заключается в том, что длинные числа, превышающие диапазон типов, хранятся в массивах. Так?
0
1080 / 1007 / 106
Регистрация: 28.02.2010
Сообщений: 2,889
31.08.2011, 08:09 6
Да. Массивы - это один из способов хранения длинных чисел.
1
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.08.2011, 08:20 7
Цитата Сообщение от grizlik78 Посмотреть сообщение
An1ka, а длинная арифметика где?
А чем она от короткой отличается?
Просто перегрузить <=,*,-, и все =)
1
Zverit
31.08.2011, 09:32  [ТС]
  #8

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
Просто перегрузить <=,*,-, и все =)
Блиин...Как сам я сам не догадался?! Спасибо!

0
Эксперт С++
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
31.08.2011, 10:43 9
Цитата Сообщение от diagon Посмотреть сообщение
А чем она от короткой отличается?
Возвращаемым и передаваемым типом unsigned int
0
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 11:02 10
Легче реализовать функцию, где длинное число будем передавать по ссылке
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
31.08.2011, 11:14 11
Я тут когда-то начинал заниматься этим делом: https://www.cyberforum.ru/cpp-... 53284.html
но в итоге до конца дело так и не довел
Вроде бы есть только сложение, вычитание, умножение на Си. Надо реализовать деление и при желании можно все обернуть в класс.
1
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:15 12
Тут вот очень хорошо реализовано
1
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
31.08.2011, 12:22  [ТС] 13

Не по теме:

iama,
fasked, ага, уже нашел. Но все равно спасибо большое!



Добавлено через 4 минуты
iama, Только там с векторами. Хотелось бы без них. Т.к наверное на олимпиадах не разрешено пользоваться STL.
0
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:23 14
Цитата Сообщение от ITZver Посмотреть сообщение
наверное на олимпиадах не разрешено пользоваться STL.
Это еще почему?
0
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
31.08.2011, 12:25  [ТС] 15
Цитата Сообщение от iama Посмотреть сообщение
Это еще почему?
А разве можно? Вообще сомневаюсь, что можно на C++.Там ,вроде как, только на Basic и Pascal (Я о всероссийской олимпиаде по информатике)Исправьте, если не прав, просто сколько раз участвовал, писал на Pascal, а другие как то не предлагали.
0
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
31.08.2011, 12:30 16
Если можно пользоваться С++, то векторами тоже. Стандарт однако
1
Уничтожитель печенек
281 / 209 / 49
Регистрация: 07.02.2010
Сообщений: 724
31.08.2011, 12:31  [ТС] 17
Цитата Сообщение от zuq Посмотреть сообщение
Если можно пользоваться С++, то векторами тоже. Стандарт однако
Согласен, но там же есть готовые алгоритмы.
0
Higher
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.08.2011, 12:35 18
Хм... В нашей районной олимпиаде даже на яве писать можно было, не говоря уже про STL =\
Про всероссийскую не знаю, но вряд ли там только на паскале и бейсике писать можно.
1
95 / 95 / 5
Регистрация: 10.04.2011
Сообщений: 256
31.08.2011, 12:35 19
Так это же хорошо) Насколько я знаю, STL - можно пользоваться в полной мере.
0
1360 / 988 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:36 20
ITZver, дается компилятор, и ты волен совать в него какой угодно код (не взламывающий систему), лишь бы получить правильный результат. Действительно, знание STL - большой бонус на олимпиадах.
0
31.08.2011, 12:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.08.2011, 12:36
Помогаю со студенческими работами здесь

Длинная арифметика
На вход вашей программе даны 2 числа a и b, вам необходимо вывести результат их побитового...

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

Длинная арифметика
Реализовать вычитание в длинной арифметики, то есть у нас есть 2 числа длинною 100 знаков.

Длинная арифметика
Как сделать типы длинных чисел, например, знаковое 256-ти битное целое и 256-ти битное вещественное...

Длинная арифметика
Здраствуйте! Решила реализовывать длинную арифметику(для вещественных чисел) для интереса и...

Длинная арифметика
Как сделать очень-очень оптимальный вариант по памяти и времени , для нахождения факториала 3000?...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru