Почему m = l+((r - l) / 2) вместо m = (l+r) / 2 Избегайте переполнения в C ++?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему m = l+((r - l) / 2) вместо m = (l+r) / 2 Избегайте переполнения в C ++?

Сообщение Anonymous »

Здравствуйте, я смотрел на решение C ++ к вопросу «Предположим, что отсортированный массив вращается в некотором смысле, неизвестно вам заранее. (т.е. 0 1 2 4 5 6 7 может стать 4 5 6 7 0 1 2). Как вы найдете элемент в повернутой массиве?int rotated_binary_search(int A[], int N, int key) {
int L = 0;
int R = N - 1;

while (L

Подробнее здесь: https://stackoverflow.com/questions/251 ... rflow-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»