Как найти элемент в массиве так, чтобы сумма левого массива была равна сумме правого массива

используйте

ob_start ();

blockquote>

в самой верхней части вашего скрипта и

ob_end_flush ( );

blockquote>

внизу вашего скрипта. Этот wil включит буферизацию вывода и ваши заголовки будут созданы после того, как страница будет bufferd.

ОБЩИЕ ПРОБЛЕМЫ:

=============== =====

(скопированный ответ из: source )

1) не должно быть никакого выхода (т.е. echo.. или HTML-коды) перед командой header(.......);.

2) удалите любое белое пространство (или новую строку) до и после ?> тегов.

3) ЗОЛОТОЕ ПРАВИЛО! - проверьте, поддерживает ли этот файл php (а также, если вы include другие файлы) UTF8 без кодировки спецификации (а не только UTF-8). Это проблема во многих случаях (потому что кодированный файл UTF8 имеет что-то особенное в начале файла php, которое ваш текстовый редактор не показывает) !!!!!!!!!!!

4) После header(...); вы должны использовать exit;

5) всегда используйте ссылку 301 или 302:

header("location: http://example.com",  true,  301 );  exit;

6) Включить ошибку составление отчетов. И сообщать об ошибке.

7) Если ни одно из вышеизложенных не помогает, используйте перенаправление JAVSCRIPT (однако, сильно не рекомендуемый метод), может быть последним шансом в пользовательских случаях ...:

echo ""; exit;

-1
задан bolov 16 January 2019 в 21:12
поделиться

2 ответа

Я дам вам несколько советов, которые должны привести вас к решению:

  1. Рассчитать общую сумму в массиве за один проход. Давайте назовем это totalSum .
  2. Сделайте второй проход и вычислите partSum , до позиции, которую вы обработали (, но не включили ). Скажите, что это i со значением a [i] . Если totalSum - partialSum - a[i] = partialSum, то позиция i является вашим ответом, а a [i] является его значением.
0
ответ дан NiVeR 16 January 2019 в 21:12
поделиться

Прежде всего, вы хотите сбросить j, k на каждой итерации с помощью этого метода, если я правильно понимаю.

Во-вторых, по какой-то причине второй цикл for увеличивает n вместо i.

В-третьих, вы также объявляете arr2, не инициализируете его и по какой-то причине добавляете значения в arr2 к k.

Вы включаете и медиану. Попробуйте n = 2.

j = arr [2] + arr [3] + arr [4] = 2 + 5 + 0 = 7
k = arr [0] + arr [ 1] = 1 + 4 = 0

предложенные изменения цикла while (для поддержания того же метода):

while (n <= 5) {
    j = 0; k = 0;
    for (i = n+1; i < 5; i++) {
        j+= arr[i];
    }
    for (i = 0; i < n; i++) {
        k+= arr[i]
    }
    if (k == j) {
        cout << "\n" << arr[n];
        break; //you should end the for loop here
    }
    n++;
}
0
ответ дан Daniel 16 January 2019 в 21:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: