Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 12.01.2021
Сообщений: 7

Найти сумму элементов массива между первым и последним положительными элементами

19.01.2021, 23:50. Показов 4924. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Найти сумму элементов массива, расположенных между первым и последним
положительными элементами.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2021, 23:50
Ответы с готовыми решениями:

Вычислить сумму элементов, расположенных между первым и последним положительными элементами
В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Количество элементов массива, равных нулю. 2.Сумму...

Найти сумму чётных элементов во второй половине массива; количество чисел расположенных между первым и последним
Задан массив целых чисел X(n). Найти -сумму чётных элементов во второй половине массива; -количество чисел расположенных между первым и...

Найти сумму элементов, расположенных между первым и последним положительными элементами
Задание. 1.Минимальный элемент массива. 2.Сумму элементов, расположенных между первым и последним положительными элементами. ...

5
260 / 165 / 54
Регистрация: 03.05.2019
Сообщений: 339
20.01.2021, 16:42
Лучший ответ Сообщение было отмечено Fury67 как решение

Решение

Python
1
sum(data[1: -1])
Сейчас поправлю на положительные, не прочитал.

Добавлено через 16 минут
Python
1
2
3
4
5
6
7
8
9
10
data = [1, 1, 1, 1, 1, 1]
first, second = None, None
for i in range(len(data)):
    if first == None and data[i] > 0:
        first = i
    if second == None and data[-i - 1] > 0:
        second = -i - 1
    if first and second:
        break
print(sum(data[first + 1: second]) if first != None and second != None else 'не найдено достаточно положительных елементов')
Если найболее просто. Позже может более интересный вариант напишу.
1
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
20.01.2021, 16:58
Python
1
(lambda a: (lambda b: print('Error' if len(b) < 2 else sum(a[b[0] + 1:b[-1]]))) ([i for i, j in enumerate(a) if j > 0])) (list(map(float, input().split())))


Добавлено через 1 минуту
Правда, мне не нравится, что дважды lambda, но что-то не получилось единожды создать b из a, ибо все время ругалось на неопределённость a.
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
20.01.2021, 17:02
Fury67, хорош. Только есть один косяк (или не косяк): сумма пустого множества должна быть равна 0, а не "Error", имхо. В т. ч. тест: "-5 -5".
0
Заяц, просто Заяц.
 Аватар для Fury67
666 / 280 / 156
Регистрация: 12.11.2017
Сообщений: 882
20.01.2021, 17:05
Arsegg, ну, наверное, но не так важно. Спасибо за поправку.

P.S. Но так писать в одну строчку точно не надо, все ругаются))))
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
20.01.2021, 17:33

Не по теме:

Цитата Сообщение от Fury67 Посмотреть сообщение
Но так писать в одну строчку точно не надо, все ругаются))))
Шепни на ухо, кто ругается.

P. S. Если читаемость не страдает, то однострочник - очень даже хорошо, имхо.


/upd
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
In [1]: def sumBetweenFirstAndLastPositiveElements(a):
    ...:     size = len(a)
    ...:     first = next((i for i, x in enumerate(a) if x > 0), 0)
    ...:     last = size - next((i for i, x in enumerate(reversed(a)) if x > 0), size)
    ...:     return sum(a[first:last])
    ...:
 
In [2]: assert sumBetweenFirstAndLastPositiveElements((1, 2, 3,)) == 6
 
In [3]: assert sumBetweenFirstAndLastPositiveElements((-1, -2, -3,)) == 0
 
In [4]: assert sumBetweenFirstAndLastPositiveElements((-1, 2, -3,)) == 2
 
In [5]: assert sumBetweenFirstAndLastPositiveElements((1, -2, 3,)) == 2
 
In [6]: assert sumBetweenFirstAndLastPositiveElements((1, -2, -3,)) == 1
 
In [7]: assert sumBetweenFirstAndLastPositiveElements((-1, -2, 3,)) == 3
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2021, 17:33
Помогаю со студенческими работами здесь

Вычислить сумму элементов массива, расположенных между первым и последним отрицательными элементами
В одномерном массиве, состоящем из n вещественных элементов, вводимых с клавиатуры вычислить сумму элементов массива, расположенных между...

Найти произведение элементов массива, расположенных между первым и последним отрицательными элементами
Задан массив вещественных чисел Х(n). Найти произведение элементов массива, расположенных между первым и послендним отрицательными...

Найти сумму элементов массива, расположенных между 1 и 2 положительными элементами массива
кароч надо в эту прогу засунуть :&quot;сумму элементов массива,расположена между 1 и 2 положительными элементами.&quot; from random import...

Найти сумму и произведение элементов массива, расположенных между первым и вторым нулевыми элементами
Дан массив целых чисел. Найти сумму и произведение элементов массива, расположенных между первым и вторым нулевыми элементами.

Найти сумму элементов массива между первым и последним положительными элементами
Написал код который выполняет несколько функций. 1. Выносит элементы массива на экран. 2. Находит наименьший элемент. 3. Сумму...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru