2 в степени х равно 2 в какой то степени (посчитай от 131072)
х будет равен степени
вроде так решается
punchf
05.02.2020
если речь идет о правильном шестиугольнике (у которого все углы равны), то можно составить алгоритм, состоящий из шести одинаковых циклов.цикл должен состоять из двух команд: 1) нарисовать отрезок длины a (длина отрезка является длиной одной стороны шестиугольника); 2) сделать поворот влево по углом 60 градусов. {теперь обьясню, почему 60. сума углов любого n-угольника вычисляется по формуле: 180*(n-2) (можете проверить ее для треугольника или квадрата). подставляем вместо n значение 6: 180*(6-2)=180*4=720, то есть каждый угол равен 720/6=120. сделав поворот на 60 градусов влево, мы создаем нужный угол 120 градусов между исполнителем и нарисованной прямой.} если среда программирования python, нужна такая программа: from turtle import* from count in range(6): forward(a) left(60)
dvpered
05.02.2020
Программа работает неверно: даже на примере из условия вместо 2600 выводится 55*245 = 13475. в программе происходит что-то странное, например, сравниваются элементы последовательности и 8 (зачем? ) подумаем, как можно было бы решать . - наивный способ: сохранить все числа в массив и пробежаться по нему в двойном цикле, в псевдокоде это выглядит примерно так: max = 0 for i = 1 to n do for j = 1 to n do if |i - j| > = 8 and max < a[i] * a[j] then max = a[i] * a[j] это нехорошо и по времени (время выполнения порядка n^2), и по памяти (количество памяти растет с ростом n пропорционально n). - немного ускоряем: у нас пары i, j и j, i ничем не отличаются, так что будем считать, что j < i. учитывая условие, что |i - j| > = 8, получаем, что j < = i - 8. переписываем: max = 0 for i = 9 to n do for j = 1 to i - 8 do if max < a[i] * a[j] then max = a[i] * a[j] это решение работает в 2 раза быстрее, но этого недостаточно. памяти тоже слишком много. - продолжаем ускорять. пусть i зафиксировано. мы пытаемся сравнить a[i] * a[j] с max для всех j от 1 до i - 8. очевидно, произведение будет максимально, если a[j] - максимум среди a[1], a[2], a[i - 8]. возможное решение: создадим массив из максимумов среди первых k чисел, и будем сравнивать уже с максимумом. maximums[1..n] maximums[1] = a[1] for i = 2 to n do maximums[i] = max(maximums[i - 1], a[i]) max = 0 for i = 9 to n do if max < a[i] * maximums[i - 8] then max = a[i] * maximums[i - 8] это решение уже работает быстро, но остались проблемы с большим расходом памяти. - последний рывок. заметим, что для того, чтобы разобраться с числом под номером i, нам совсем не нужен массив a, а из массива maximums достаточно знать только maximums[i - 8], maximums[i - 1] - 8 чисел. так что большие массивы не нужны, их можно убрать. тогда программа будет эффективна и по времени, и по памяти. у меня максимумы хранятся в массиве maxs[0..7], все номера берутся по модулю 8. в вашей программе это может быть реализовано иначе. pascal: var i, n, t, max: integer; maxs: array[0..7] of integer; begin read(n); read(t); max : = 0; maxs[1] : = t; for i : = 2 to n do begin read(t); if (i > 8) and (max < t * maxs[i mod 8]) then max : = t * maxs[i mod 8]; if t > maxs[(i + 7) mod 8] then maxs[i mod 8] : = t else maxs[i mod 8] : = maxs[(i + 7) mod 8]; end; write(max); end.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Найдите x: 1) 8 в степени x битов=32 кбайт 2)16 в степени x битов=128 кбайт
1)32кбайт=32*1024=32768 байт
8 бит=1 байт
1 в степени х равно 1 в степени 32768
х равен 32768
2) 16 бит=2 байта
128 килобайт это 131072 байт
2 в степени х равно 2 в какой то степени (посчитай от 131072)
х будет равен степени
вроде так решается