Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
#1

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

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

Как реализовать длинную арифметику в рекурсии типа N! = 1 * 2 * 3 * … * (N-1) * N. Да и вообще, не откажусь от информации в общем о длинной арифметике.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2011, 21:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "Длинная" арифметика в рекурсии (C++):

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс "вентилятор" содержащий в себе классы:...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.08.2011, 21:50 #2
Я что-то не понял, сегодня гугл что, массовый бан устроил?
http://lmgtfy.com/?q=%D0%B4%D0%BB%D0...B8%D0%BA%D0%B0
Ну, и чтобы сообщение не было спамом))
http://ru.wikipedia.org/wiki/Длинная_арифметика
An1ka
65 / 70 / 2
Регистрация: 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, потому что полагают факториал от нуля равен единице.
grizlik78
Эксперт С++
1908 / 1440 / 111
Регистрация: 29.05.2011
Сообщений: 2,996
31.08.2011, 01:08 #4
An1ka, а длинная арифметика где?
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
31.08.2011, 01:39  [ТС] #5
Как я понимаю, длинная арифметика заключается в том, что длинные числа, превышающие диапазон типов, хранятся в массивах. Так?
Евгений М.
1035 / 976 / 54
Регистрация: 28.02.2010
Сообщений: 2,829
Завершенные тесты: 2
31.08.2011, 08:09 #6
Да. Массивы - это один из способов хранения длинных чисел.
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.08.2011, 08:20 #7
Цитата Сообщение от grizlik78 Посмотреть сообщение
An1ka, а длинная арифметика где?
А чем она от короткой отличается?
Просто перегрузить <=,*,-, и все =)
Zverit
31.08.2011, 09:32  [ТС]
  #8

Не по теме:

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

silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.08.2011, 10:43 #9
Цитата Сообщение от diagon Посмотреть сообщение
А чем она от короткой отличается?
Возвращаемым и передаваемым типом unsigned int
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 11:02 #10
Легче реализовать функцию, где длинное число будем передавать по ссылке
fasked
Эксперт С++
4935 / 2515 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.08.2011, 11:14 #11
Я тут когда-то начинал заниматься этим делом: http://www.cyberforum.ru/cpp-beginne...ead153284.html
но в итоге до конца дело так и не довел
Вроде бы есть только сложение, вычитание, умножение на Си. Надо реализовать деление и при желании можно все обернуть в класс.
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:15 #12
Тут вот очень хорошо реализовано
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
31.08.2011, 12:22  [ТС] #13

Не по теме:

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



Добавлено через 4 минуты
iama, Только там с векторами. Хотелось бы без них. Т.к наверное на олимпиадах не разрешено пользоваться STL.
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:23 #14
Цитата Сообщение от ITZver Посмотреть сообщение
наверное на олимпиадах не разрешено пользоваться STL.
Это еще почему?
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
31.08.2011, 12:25  [ТС] #15
Цитата Сообщение от iama Посмотреть сообщение
Это еще почему?
А разве можно? Вообще сомневаюсь, что можно на C++.Там ,вроде как, только на Basic и Pascal (Я о всероссийской олимпиаде по информатике)Исправьте, если не прав, просто сколько раз участвовал, писал на Pascal, а другие как то не предлагали.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 12:25
Привет! Вот еще темы с ответами:

Задачка"Целочисленная арифметика" - C++
Произведение п первых нечетных чисел равно р. Сколько сомножителей взято? Если введенное число п не является указанным произведением,...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Реализовать структуру "Анкета" с полями "Фамилия", "Пол" и "Адрес" - C++
Здравствуйте. Проходим тему Структуры, не могу понять, как определить количество, само задание: #include &lt;iostream&gt; #include...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.08.2011, 12:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru