Array23. Дан массив размера $$N$$ и целые числа $$K$$ и $$L$$ ($$1 \lt K \leq L \leq N$$). Найти среднее арифметическое всех элементов массива, кроме элементов с номерами от $$K$$ до $$L$$ включительно.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
a=[] N = int(input("N:")) for i in range(N): a.append(int(input("A: "))) K = int(input("K:")) L = int(input("L:")) sum=0 for i in range(0,K-1): sum+=a[i] for i in range(L,N): sum+=a[i] print( sum) |
Другие задачи из раздела Array можно посмотреть здесь.
Номер элемента и индекс элемента в списке (массиве) в этой задаче это одно и то же?
«элементов с номерами» я считаю что это описание индекса
тогда 12 и 14 строки другие — for i in range(K): и for i in range(L+1,N)
a = [1,2,3,4,5]
k=2; l=3
sum=1+2+5
перечитал задание.. всё плохо..
В начале главы есть надпись:
Если в задании явно не указывается, какие значения может принимать размер исходного массива, то предполагается, что размер может изменяться в пределах от 2 до 10. Порядковый номер начального элемента массива считается равным 1.
То есть как бы a[0] не должен участвовать в процессе…
Но не думаю, что это кто то читает… не знаю как быть 🙁
должно получается быть так:
for i in range(N):
if i > 0:
a.append(int(input(«A: «)))
Но мне так совсем не нравиться…
Поэтому хочу что бы было так:
a = [1,2,3,4,5]
k=2; l=3
sum=1+4+5
«Индекс начального элемента массива считается равным 1» У питона индексация элементов списка с нуля. Поэтому тут a[0] это первый элемент (элемент с номером 1). Соответственно элемент с номером K — это элемент с индексом K-1. Тогда все верно.
«enumerate(iterator, start) — начинает считать с значения start. Удобно, например, если нам надо считать с 1, а не 0.»