Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
1

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

03.05.2013, 08:54. Просмотров 886. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста, В СРР есть предел макисально целого числа он записан в long long int, есть ли какая-то возможность обойти этот предел.
P.S. Если не понятно вышенаписанное, я имел ввиду, что для вычисления факториала больше 20 потребуется реализовать длинную арифметику, но может есть способо вычислить факториал без этого, просто сняв ограничение по long long int? Компьютеру все равно что складывать, умнажать и какой длины числа.
P.S.S. Это я к тому, что видел на одном сайте как задачу по вычислению факториала (1<=факториал<=1000 ) уложились по коду в 66 символов на СРР.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 08:54
Ответы с готовыми решениями:

Определить цифры целого числа (тип числа - целое без знака)
Определить цифры целого числа( тип числа-целое без знака), вычислить сумму полученных цифр....

Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -> 3153)
Из целого числа получить новое, состоящее из нечетных цифр числа (2315663 -&gt; 3153) на DevC++....

Конструирование значения целого числа или числа с плавающей точкой по его дампу
Как сконструировать значения целого числа(char, short int, long int) или числа с плавающей...

нужен тип целого числа для числа 19!= 121 645 100 408 832 000
Нужно посчитать сумму цифр целого положительного числа. double summacifr(double chislo) {...

6
Модератор
Эксперт по электронике
8228 / 6095 / 814
Регистрация: 14.02.2011
Сообщений: 21,158
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];
}
и переопределить все операции
2
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
04.05.2013, 00:00  [ТС] 3
ValeryS, А Вы не могли бы привести пример переопределения операции умножения пожалуйста???
0
Модератор
Эксперт по электронике
8228 / 6095 / 814
Регистрация: 14.02.2011
Сообщений: 21,158
04.05.2013, 00:03 4
честно говоря вот так навскидку не могу
надо вспоминать математику
но принцип типа умножение столбиком
0
276 / 275 / 83
Регистрация: 03.02.2013
Сообщений: 792
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) ну в общем понятно, однако при необходимости можно ручками замутить арифметику любой разрядности
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
04.05.2013, 08:40  [ТС] 6
ValeryS, Правильно ли я понял Вас, то есть переопределение всех операция тоже самое, что реализовать длинную арифметику для каждой операции???

abit, Пдскажите пожалуйста, что это за библиотеки для длинных чисел в СРР??? (Их названия пожалуйста, или где можно почитать о них??)
0
Модератор
Эксперт по электронике
8228 / 6095 / 814
Регистрация: 14.02.2011
Сообщений: 21,158
04.05.2013, 09:24 7
Цитата Сообщение от NaikoN Посмотреть сообщение
переопределение всех операция тоже самое, что реализовать длинную арифметику для каждой операции???
если подразумевать под длинной арифметикой это
htt p://ru.wikipedia.org/wiki/Длинная_арифметика
то да
Цитата Сообщение от NaikoN Посмотреть сообщение
Пдскажите пожалуйста, что это за библиотеки для длинных чисел в СРР???
посмотри эту тему
Длинная арифметика: есть ли в C++ библиотека для работы с длинными числами?

Добавлено через 6 минут
вот еще тема
Длинная арифметика на Си
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 09:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Дана строка. Определить, представляет ли она собой запись целого числа или запись дробного числа
Дана строка.Необходимо определить ,представляет ли она собой запись целого числа,записать дробного...

. Дана строка, изображающая десятичную запись целого положительного числа. Вывести строку, изображающую двоичную запись этого же числа
срочно помогите пожалуйста

Определить, является ли введенный текст записью целого числа или записью вещественного числа
Определить является ли введенный текст записью целого числа или записью вещественного числа.

Класс содержащий методы вычисления квадрата целого числа и квадрата числа с плавающей точкой
Вот есть код. Вопрос. Как мне из конструктора по умолчанию перенести значение переменный (a, b) в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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