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

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

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

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

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

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

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

Ошибка в программе, адресная арифметика(Компилятор выдает ошибку "Cannot conver int* to int") - C++
#include <stdio.h> #include <time.h> #include <stdlib.h> #include <alloc.h> int size=(int*)malloc(50*sizeof (int)) { for...

"арифметика" #DEFINE - C++
Здравствуйте, коллеги! Помогите разобраться, почему в приведенном ниже коде результатом является: С==2? Какова арифметика...

длинная арифметика - C++
решите задачку: пользователь вводит 2 больших числа (числа от -1*2^127 до 1*2^127-1). Написать программу для суммирования таких чисел.

Длинная арифметика - C++
class BigInt { static const int max_size = 100000;//количество десятичных разрядов, которые должно вмещать static...

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

Длинная арифметика - C++
Алгоритмы всех операций в принципе уже готовы (длина числа ограничивается только ресурсами ПК). Осталось только подобрать качественный...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4958 / 3034 / 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
Эксперт С++
1904 / 1436 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
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,827
Завершенные тесты: 2
31.08.2011, 08:09     "Длинная" арифметика в рекурсии #6
Да. Массивы - это один из способов хранения длинных чисел.
diagon
Higher
1927 / 1193 / 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
Эксперт С++
4958 / 3034 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
31.08.2011, 10:43     "Длинная" арифметика в рекурсии #9
Цитата Сообщение от diagon Посмотреть сообщение
А чем она от короткой отличается?
Возвращаемым и передаваемым типом unsigned int
iama
1249 / 974 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 11:02     "Длинная" арифметика в рекурсии #10
Легче реализовать функцию, где длинное число будем передавать по ссылке
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
31.08.2011, 11:14     "Длинная" арифметика в рекурсии #11
Я тут когда-то начинал заниматься этим делом: http://www.cyberforum.ru/cpp-beginne...ead153284.html
но в итоге до конца дело так и не довел
Вроде бы есть только сложение, вычитание, умножение на Си. Надо реализовать деление и при желании можно все обернуть в класс.
iama
1249 / 974 / 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
1249 / 974 / 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, а другие как то не предлагали.
zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
31.08.2011, 12:30     "Длинная" арифметика в рекурсии #16
Если можно пользоваться С++, то векторами тоже. Стандарт однако
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
31.08.2011, 12:31  [ТС]     "Длинная" арифметика в рекурсии #17
Цитата Сообщение от zuq Посмотреть сообщение
Если можно пользоваться С++, то векторами тоже. Стандарт однако
Согласен, но там же есть готовые алгоритмы.
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
31.08.2011, 12:35     "Длинная" арифметика в рекурсии #18
Хм... В нашей районной олимпиаде даже на яве писать можно было, не говоря уже про STL =\
Про всероссийскую не знаю, но вряд ли там только на паскале и бейсике писать можно.
zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
31.08.2011, 12:35     "Длинная" арифметика в рекурсии #19
Так это же хорошо) Насколько я знаю, STL - можно пользоваться в полной мере.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2011, 12:36     "Длинная" арифметика в рекурсии
Еще ссылки по теме:

Длинная арифметика N+1 - C++
Помогите плиз. Вводится n. Вывести N+1. Ограничений нет. Я понимаю что надо ввести массив и читать каждый символ. Оставшиеся елементы...

Длинная арифметика)) - C++
Программка уже почти готова, единственное неправильно находит остаток при делении По заданию: Надо ввести 2-ва целых числа неогран....

Длинная арифметика - C++
Мне дали задание с вычеслениями длинной арифметики. С мысл в том что там все действия происходят с символьными масивами. Я так и не...

Длинная арифметика - C++
Всем привет! Хотелось бы узнать -- есть ли в С++ библиотека, где реализованы операции над длинными числами?

Длинная арифметика - C++
http://www.********/index.asp?main=task&amp;id_task=103 Как решить эту задачу? С помощью чего, и в чем смысл решения длянной...


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

Или воспользуйтесь поиском по форуму:
iama
1249 / 974 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
31.08.2011, 12:36     "Длинная" арифметика в рекурсии #20
ITZver, дается компилятор, и ты волен совать в него какой угодно код (не взламывающий систему), лишь бы получить правильный результат. Действительно, знание STL - большой бонус на олимпиадах.
Yandex
Объявления
31.08.2011, 12:36     "Длинная" арифметика в рекурсии
Ответ Создать тему
Опции темы

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