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

Предел макисально целого числа - C++

Восстановить пароль Регистрация
 
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
03.05.2013, 08:54     Предел макисально целого числа #1
Подскажите пожалуйста, В СРР есть предел макисально целого числа он записан в long long int, есть ли какая-то возможность обойти этот предел.
P.S. Если не понятно вышенаписанное, я имел ввиду, что для вычисления факториала больше 20 потребуется реализовать длинную арифметику, но может есть способо вычислить факториал без этого, просто сняв ограничение по long long int? Компьютеру все равно что складывать, умнажать и какой длины числа.
P.S.S. Это я к тому, что видел на одном сайте как задачу по вычислению факториала (1<=факториал<=1000 ) уложились по коду в 66 символов на СРР.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
03.05.2013, 09:10     Предел макисально целого числа #2
Цитата Сообщение от NaikoN Посмотреть сообщение
В СРР есть предел макисально целого числа он записан в long long int, есть ли какая-то возможность обойти этот предел.
нет
если не создавать своих чисел(формат числа)

long long int, занимает 8 байт и максимальное число знаковое будет 7F FF FF FF FF FF FF FF или 63 единицы в двоичном виде
беззнаковое FF FF FF FF FF FF FF FF 64 единички в двоичном виде
больше туда не влезет
если нужно большее число то нужно создать свой тип
например так
C++
1
2
3
4
struct LongLongLong
{
unsigned char v[16];
}
и переопределить все операции
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
04.05.2013, 00:00  [ТС]     Предел макисально целого числа #3
ValeryS, А Вы не могли бы привести пример переопределения операции умножения пожалуйста???
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
04.05.2013, 00:03     Предел макисально целого числа #4
честно говоря вот так навскидку не могу
надо вспоминать математику
но принцип типа умножение столбиком
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
04.05.2013, 02:41     Предел макисально целого числа #5
Подскажите пожалуйста, В СРР есть предел максимально целого числа он записан в long long int, есть ли какая-то возможность обойти этот предел.
тебе соврали, обойти есть куча способов, как самому (несколько способов - через строковую арифиметику, массивную и на бинарных массивах), так и с помощью готовой библиотеки (смотреть в сторону библиотек С++ для длинных чисел)

но может есть способ вычислить факториал без этого, просто сняв ограничение по long long int?
гарантированно быстрого нет) лучше взять язык без привязки к типам в этом случае, где есть просто числа и есть бесконечные числа) всё осуществляется именно по длинной арифметике наиболее оптимальными алгоритмами без задумок что и как со стороны программиста

Это я к тому, что видел на одном сайте как задачу по вычислению факториала (1<=факториал<=1000 ) уложились по коду в 66 символов на СРР.
и не увидете, либо используйте готовые библиотеки C++ типа этой - http://gmplib.org/
либо haskell где без этих библиотек это будет в 1 строчку

по теме темы - предел максимального числа зависит от компилятора+платформы+ архитектуры, хороший стиль - не заваливать индекса дин.массива больше чем sise_t, не хранить в контейнерах больше c::size_type ( c - это тип контейнера vector/map/deque и т.д.) не орудовать арифметикой с числами больше чем sizeof(size_t) ну в общем понятно, однако при необходимости можно ручками замутить арифметику любой разрядности
NaikoN
2 / 2 / 0
Регистрация: 01.05.2013
Сообщений: 109
04.05.2013, 08:40  [ТС]     Предел макисально целого числа #6
ValeryS, Правильно ли я понял Вас, то есть переопределение всех операция тоже самое, что реализовать длинную арифметику для каждой операции???

abit, Пдскажите пожалуйста, что это за библиотеки для длинных чисел в СРР??? (Их названия пожалуйста, или где можно почитать о них??)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.05.2013, 09:24     Предел макисально целого числа
Еще ссылки по теме:

C++ Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа
Определить цифры целого числа (тип числа - целое без знака) C++
Ввод целого числа C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
04.05.2013, 09:24     Предел макисально целого числа #7
Цитата Сообщение от NaikoN Посмотреть сообщение
переопределение всех операция тоже самое, что реализовать длинную арифметику для каждой операции???
если подразумевать под длинной арифметикой это
htt p://ru.wikipedia.org/wiki/Длинная_арифметика
то да
Цитата Сообщение от NaikoN Посмотреть сообщение
Пдскажите пожалуйста, что это за библиотеки для длинных чисел в СРР???
посмотри эту тему
Длинная арифметика

Добавлено через 6 минут
вот еще тема
Длинная арифметика на Си
Yandex
Объявления
04.05.2013, 09:24     Предел макисально целого числа
Ответ Создать тему
Опции темы

Текущее время: 05:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru