Q = (a_i + b_i)/(2^s)
-10^10 ≤ s ≤ 10^10
1 ≤ a_i, b_i ≤ 10^9
It is guaranteed that -10^10 ≤ Q ≤ 10^10.
Here s,a_i,b_i are integers and Q is a decimal no.
При вычислении Q происходит переполнение из-за большого значения 2^s. Я использую pow (2, s) для вычисления 2^s. Как я могу вычислить Q, учитывая диапазон Q, как в инструкции.Переполнение раздела с использованием pow()
Я бы взял журнал числителя и знаменателя отдельно. Если вы делаете эту базу данных 2, то журнал знаменателя - это просто s. Разделение чисел может быть выполнено путем вычитания их журналов. – WDS
Пожалуйста, покажите свой фактический код, объясните, как вы поняли, вы получаете переполнение и для каких значений a_i, b_i и s вы делаете. – MikeMB
Это не переполнение для значений 'Q' в этом диапазоне: не могли бы вы привести пример некоторых чисел? –