Объясните пожалуйста как это делается.информатика 9 класс.массивы

0 голосов
52 просмотров

Объясните пожалуйста как это делается.информатика 9 класс.массивы


image

Информатика (222 баллов) | 52 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Массив a: 1, 4, 9, 16, 25, 36, 49, 64, 81, 100
b = a[10] = 100
i = 0; a[10-0] = a[9-0] = 81 (т.е. на место 10-го элемента записывается значение 9-го элемента,т.е. 81)
Массив a: 1, 4, 9, 16, 25, 36, 49, 64, 81, 81
i = 1; a[10-1] = a[9-1] = 64
Массив a: 1, 4, 9, 16, 25, 36, 49, 64, 64, 81
i = 2; a[10-2] = a[9-2] = 49
Массив a: 1, 4, 9, 16, 25, 36, 49, 49, 64, 81
i = 3; a[10-3] = a[9-3] = 36
Массив a: 1, 4, 9, 16, 25, 36, 36, 49, 64, 81
i = 4; a[10-4] = a[9-4] = 25
Массив a: 1, 4, 9, 16, 25, 25, 36, 49, 64, 81
i = 5; a[10-5] = a[9-5] = 16
Массив a: 1, 4, 9, 16, 16, 25, 36, 49, 64, 81
i = 6; a[10-6] = a[9-6] = 9
Массив a: 1, 4, 9, 9, 16, 25, 36, 49, 64, 81
i = 7; a[10-7] = a[9-7] = 4
Массив a: 1, 4, 4, 9, 16, 25, 36, 49, 64, 81
i = 8; a[10-8] = a[9-8] = 1
Массив a: 1, 1, 4, 9, 16, 25, 36, 49, 64, 81
a[1] = b = 100
Массив a: 100, 1, 4, 9, 16, 25, 36, 49, 64, 81

(194k баллов)
0 голосов

Да очень просто. Переписываешь на JS, пихаешь в адресную строку и получаешь результат:

javascript:var a=[];for(var i=0;i<10;i++)a.push((i+1)*(i+1));var b=a[9];for(var i=0;i<9;i++)a[9-i]=a[8-i];a[0]=b;alert(a[6]);<br>
Выведет 36.

А происходит тут следующее: в переменную b пихается последнее, 10-е значение из массива a, после чего на каждой итерации цикла (а их 10) каждый элемент заменяется элементом, стоящим слева от него (идём справа налево, т. е. от старших индексов к младшим). В конце первый элемент заменяем сохранённым значением b. Т. е. выполнили циклический сдвиг массива в сторону старших индексов. Это легко видеть по коду, поэтому не обязательно его выполнять, достаточно найти в исходном массиве не 7-е, а 6-е значение, это и будет ответ.