Помогите написать программу, которая из последовательности целых чисел вычислить сумму первого и последнего. Последовательность чисел вводится в режиме "однo число - одна строка" и заканчивается двумя идущими подряд нулями, которые не входят в рассматриваемую последовательность. Если последовательность состоит из одного числа, то вывести его.
Пример
Ввод
5
0
4
3
2
1
0
0
Вывод
6
Python
-------
chat gpt)
Помогите написать программу на python
Если вы ещё не успели отправить преподавателю приведённый предыдущим оратором шизофренический бред от ChatGPT, то вот нормальное решение.
Разберём по шагам:
from itertools import pairwise, takewhile
it = pairwise(int(input()) for _ in iter(int, 1))
a = [n for n, _ in takewhile(lambda p: p[0] | p[1] != 0, it)]
print(a[0] + a[-1])
Разберём по шагам:
iter(int, 1) - бесконечный итератор (т.к. int() всегда возвращает 0)
pairwise(it) - итератор, возвращающий пары из предыдущего и текущего значений исходного итератора
(например, для (1, 2, 3, 4) будут возвращаться ((1, 2), (2, 3), (3, 4))
takewhile(f, it) - берёт элементы исходного итератора, пока выполняется условие f
(а элементами, как мы помним, являются пары)
Из побитовой арифметики мы помним, что если x | y = 0 , то x = 0 и y = 0.
Итерация остановится на двух идущих подряд нулевых элементах.
Эта пара не будет включена в возвращаемые значения takewhile.
a[0] + a[-1] = сумма первого и последнего (предшествующего двум нулям) элементов
Николай Буртоликов
а что такое pairwise и takewhile?
current_number = int(input())
previous_number = current_number
while current_number != 0 or previous_number != 0:
previous_number = current_number
current_number = int(input())
if previous_number == 0:
print(current_number)
else:
print(current_number + previous_number)
Для ввода чисел по одному в строке используется функция input(), которая возвращает строку. Чтобы преобразовать строку в целое число, используется функция int(). Цикл будет работать, пока не встретит два нуля подряд. Если последовательность состоит из одного числа, то выведем его. В противном случае вычисляем сумму первого и последнего числа и выводим её на экран.-------
chat gpt)
Станислав Гавриленко
А теперь смотрим, как это работает на последовательности
0
2
4
5
6
0
0
Никак. Твой ChatGPT в очередной раз осрамился публично.
0
2
4
5
6
0
0
Никак. Твой ChatGPT в очередной раз осрамился публично.
Станислав Гавриленко
Не говоря уже о том, что она вообще не работает на последовательностях длины больше двух. :-)
Специально для двоечников создали ChatGPT.
Похожие вопросы
- Помогите написать программу на Python, моя версия кода на скрине, вроде всё работает, но автопроверка не проходит.
- Python программирование. Помогите написать программу.
- Напишите программу на Python
- Очень надо написать программу на Python!!!
- Написать программу в python
- Выразите число в виде суммы четырех квадратов Нужно написать программу на python
- Неверо написана программа на Python
- Напишите программу в Python, пожалуйста
- Помогите с программой на python библиотека tkinter
- Помогите составить программу в Python. заранее спасибо!