М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
alica123434
alica123434
13.10.2021 07:06 •  Информатика

Напишите программу которая вычисляет сумму первых n целых положительных чисел. количество суммируемых чисел должно выводиться во время работы программы. ниже представлен рекомендуемый вид экрана во время работы программы(данные введённые пользователем выделены полужирным шрифтом). вычисление суммы положительных чисел. введите количество суммируемых чисел--> 20. сумма первых 20 положительных чисел равна 210.​

👇
Открыть все ответы
Ответ:
marat5230
marat5230
13.10.2021

A = [75, 31, 80, 40, 48, 40]  # любой список

# Готовые решения для этих задач:

print(sum(A))  # Сумма

# Произведение

A = [35, 2, 82, 10, 44, 42]

import functools

import operator  # содержит все возможные операции

print(functools.reduce(  # reduce - применить операцию ко всем элементам списка поочерёдно

       operator.mul,  #  операция умножения

       A))

# Через цикл

# Сумма:

S = 0

for i in A: S += i  # Сложить все элементы A, результатом будет переменная S

print(S)

# Произведение:

M = 1  # Если будет 0, то всё выражение тоже будет 0

for i in A: M *= i


# Или

if 0 in A: M = 0

else:

   for i in A: M *= i

print(M)

4,7(92 оценок)
Ответ:
nargizdjgalova
nargizdjgalova
13.10.2021

Первая строка описывает импорт функции permutations из модуля itertools. Теперь мы можем ее использовать.

Далее, конструкция ''.join(b) используется для преобразования кортежа/массива в строку. Например, у нас есть кортеж ('1','2','3') и мы хотим получить из него строчку '123'. Для этого нам надо пройтись по каждому элементу кортежа и присоединять(по-английски join) их к изначально пустой строке. Проход по каждому элементу кортежа в данном случае описан как "({присоединение} for b in {собственно сам кортеж})", где b - элемент кортежа. Теперь про то, что здесь используют в качестве кортежа: permutations - с англ. значит перестановки. То есть, условно, у нас есть слово КОТ, применяем permutations(КОТ) и получаем такие вариации как КОТ, КТО, ОКТ, ОТК, ТКО, ТОК (само слово тоже учитывается, как и в задании).

Однако функция permutations возвращает все эти варианты перестановок как кортежи, то есть, как ('К', 'О', 'Т'), ('К', 'Т', 'О') и т.д. Поэтому-то мы и используем join, чтоб получить из кортежей строки для удобной работы. Теперь стоит заметить, что при наличии в слове одинаковых букв в вариациях перестановок могут получиться совпадающие позиции, так как для компьютера перестановка, например, в слове "ЛОТО" второй и четвертой буквы "О" будет давать новую вариацию, а для нас это все еще будет то же слово ЛОТО, ведь были поменяны местами две одинаковые буквы. Для избежания этой проблемы стоит прописать перед всем массивом с перестановками функцию set, которая просто уберет из него повторяющиеся элементы.

В следующей строке мы создаем массив только из тех строк полученного нами ранее массива с перестановками, которые удовлетворяют условию задания, а именно: не имеют одинаковых соседних букв. Почему это прописано как "if "ОО" not in b"(если "ОО" не в b)? Все просто: в перестановке слова ОДЕКОЛОН две соседние буквы могут быть только ОО, ведь у других букв банально нет пары. В итоге мы проходимся по каждому элементу нашего кортежа с вариациями, и смотрим есть ли в очередной вариации подстроки с двумя буквами О подряд. Если нет - то добавляем в массив, если есть - пропускаем.

В третьей строке выводится количество элементов (len(сокращение length - англ. длина) для массива - кол-во элементов в нем) в полученном массиве, то есть количество вариантов перестановок, где нет слов с одинаковыми соседними буквами.

4,4(44 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ