Как хранить 10 ^ 6 цифр в целом числе?

Как хранить 10 ^ 6 цифр в целом числе в C ++?

Мне нужно сохранить более 10-ти значных 6-значных цифр в типе данных, который я могу выполнять с ним операции. Я пытался долго долго int, но, конечно, не удалось, потому что это только 64-битный.

-3

Решение

долго долго может держать до 9223372036854775807

использование GMP, если вы хотите выполнять слишком большие и большие числовые операции или сохранять значения.

2

Другие решения

Получить библиотеку BigInt. GnuMP является фаворитом:

Вы также можете просто написать свой собственный класс — есть много примеров, которые вы можете адаптировать.

3

Это оказалось «XY проблема«; реальный вопрос:

Я изучаю c ++ в моем колледже, поэтому я пытаюсь решить некоторые проблемы, чтобы расширить свои знания, поэтому одной из проблем является проверка получения числа, перемешивание его до тех пор, пока я не получу число, кратное 7. минимум 4 цифры и максимум 10 ^ 6 цифр.

моя проблема состоит в том, чтобы случайным образом перемешать его несколько раз, пока я не получу число, делимое на 7, например, если он дал мне 12, я печатаю 21. поэтому я должен сохранить его в строке, чтобы перемешать его, затем я пытаюсь передать его в Integer, чтобы проверить, делится на 7 или нет, а если нет, я снова перемешиваю и так далее.

Эта проблема намного проще; он в основном реализует десятичное длинное деление для делителей из одной цифры. Наивный подход предельно прост:

bool DivisibleBySeven(const char *str)
{
int remainder=0;
for(;*str;++str)
remainder=(remainder*10+(*str-'0')) % 7;
return remainder==0;
}

Это, безусловно, может быть улучшено для повышения производительности (например, преобразование больших кластеров цифр для выполнения меньшего количества делений), но это основная идея, которая, кстати, заключается в том, как бы вы делали это карандашом и бумагой.

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

2

Используйте или напишите большую целочисленную библиотеку. SO — это не то место, где можно просить или указывать на какую-либо конкретную библиотеку, но если вы выбрали опцию (конкретную библиотеку или свою собственную) и у вас есть конкретные вопросы, мы здесь, чтобы помочь.

0

Ты можешь использовать BigIntegerLibrary.h Заголовок файла и рассчитать для очень больших значений.

Вы можете обратиться по этой ссылке за помощью.
BigInt Library.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector