Как рассчитать мод log (n) для больших значений n

Я должен решить проблему в C ++, в которой я должен вычислить модуль числа, сформированного как 10 ^ n. Но проблема в том, что n — это число с плавающей запятой, поэтому, если я вычислю 10 ^ n как pow (10.0, n), оно может переполниться. Поэтому я ищу решение, которое может вычислить 10 ^ n mod m без проблем переполнения. Я обычно использую Python, где это очень просто, я не знаю, как решить в C ++.

-1

Решение

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

Это решит вашу проблему?

РЕДАКТИРОВАТЬ (см. Комментарий и для лучшего взгляда ;-))

 10^7.4 = 25118864.315[...]
--> round = 25118864,
float = 0.315,
round % 6 = 2,

--> (10^7.4)%6 = 2 + 0.315 = 2.315

как калькулятор в Windows даст вам

-2

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

Других решений пока нет …

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