Сумма элементов двумерного массива (песочные часы)

Вертикальные песочные часы

Задача.
Дан двумерный массив. Число строк равно числу столбцов. Найти сумму элементов, расположенных в области песочных часов (вертикальных – синий цвет на рисунке и горизонтальных – белый цвет).


1. Сумма элементов в области вертикальных песочных часов.
Код javascript:

var arr = [];
	arr[0] = [1,2,3];
	arr[1] = [4,5,6];
	arr[2] = [7,8,9];

	var summ = 0;

	for(var i = 0; i < arr.length; i++) {
		if (i < arr.length/2) {
			for(var j = i; j < arr[i].length - i; j++) {
				summ += arr[i][j];
			}
		} else {
			for(var j = arr[i].length - 1 - i; j <= i; j++) {
				summ += arr[i][j];
			}
		}
	}

	console.log(summ);


2. Сумма элементов в области горизонтальных песочных часов.
Имея алгоритм и код, для получения суммы элементов в области вертикальных песочных часов, нетрудно получить код для подсчета суммы элементов в области горизонтальных песочных часов.
Подумайте чем отличаются эти две области: горизонтальная и вертикальная?
И найдите отличия в предыдущем и следующем коде javascript:

var arr = [];
	arr[0] = [1,2,3];
	arr[1] = [4,5,6];
	arr[2] = [7,8,9];

	var summ = 0;

	for(var i = 0; i < arr.length; i++) {
		if (i < arr.length/2) {
			for(var j = i; j < arr[i].length - i; j++) {
				summ += arr[j][i];
			}
		} else {
			for(var j = arr[i].length - 1 - i; j <= i; j++) {
				summ += arr[j][i];
			}
		}
	}

	console.log(summ);


Так что, если вдруг на занятии вы разбирали первую часть задачи (вертикальные часы), а домой вам задали вторую часть задачи (горизонтальные часы), то вам повезло…
Хотя, ладно, такого фарта в жизни не бывает :) .
Всем удачи!
До новых встреч!

Теги:
песочные часы
Добавлено: 19 Апреля 2018 07:12:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...