«unsigned long int» продолжает становиться 0. Он должен быть действительно большим целым, чтобы я мог работать умножением и по модулю. Пример: 1234^123% 1234Как выделить целое число сотен цифр в C++?
ответ
Две дороги вы получили
1. Реализовать то, что вам нужно, научиться делать большие расчеты с использованием целочисленных массивов с математическими трюками для скорости или
2. Используйте библиотеку
Я бы предложил пойти со вторым вариантом, если вы не привязаны к использованию внешней библиотеки. Одна из таких библиотек BigNum: ttmath
OR Если у вас есть возможность переключиться на java, то в java встроены функции BigInteger, BigDecimal и другие функциональные возможности. Посмотрите на BigInteger javadoc
Этот ответ можно улучшить с помощью некоторых примеров. – mjs
Если вы используете GCC, вы можете попробовать __uint128_t или, возможно, использовать двойной вместо если вам не нужно делать битовые операции
Вам нужно большое целое библиотеку, как сказал Jonny Хенли. Тем не менее, 1234^123% 1234 acutally равно 0. – chrizke
^- операция xor в C++, а не возведение в степень, – doug
И наблюдаемый приоритет: '1234^123% 1234' означает это' 1234^(123% 1234) ' – doug