В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Sashalizanika
Sashalizanika
24.12.2020 19:11 •  Информатика

Введіть таблицю квадратів натуральних чисел від a до b включно ,по одному значенню в кожному рядку

Показать ответ
Ответ:
Dragonhaadi
Dragonhaadi
28.01.2021 03:06

Код:

n = int(input("n = "))buffer = [(n, 0, 0, 0)]result = []while len(buffer) > 0:    variant = buffer.pop()    if variant in result:        continue    result.append(variant)    ones, twos, fives, tens = variant    if ones - 2 >= 0:        buffer.append((ones - 2, twos + 1, fives, tens))    if ones - 5 >= 0:        buffer.append((ones - 5, twos, fives + 1, tens))    if ones - 10 >= 0:        buffer.append((ones - 10, twos, fives, tens + 1))print("Задание А.\nКоличество : %d\n" % len(result))print("Задание Б.\nДекларация вариантов:")for variant in result:    print("Монеток по 1 рублю: %d; Монеток по 2 рубля: %d; Монеток по 5 рублей: %d; Купюр по 10 рублей: %d." % variant)

Пояснение:

Самый простой представить сумму в N рублей – выразить её как N монеток по 1 рублю. Из этого представления "вытекают" все остальные . С теми ограничениями, что количество денег каждого номинала не может быть отрицательным, мы можем "перевести" 2 монетки по 1 рублю в 1 монетку по 2 рубля, 5 монеток по 1 рублю в 1 монетку по 5 рублей и 10 монеток по 1 рублю в 1 купюру по 10 рублей, тем самым получив из представления ещё 3 новых, из которых также можно получить новые представления.

Для того, чтобы привести этот подход к единому алгоритму создадим два списка – buffer и result: первый будем использовать как буфер ещё не обработанных (из которых будем получать новые ), а второй – как хранилище обработанных . Элементы списка – кортежи типа (количество_монеток_по_рублю, количество_монеток_по_два_рубля, количество_монеток_по_пять рублей, количество_купюр_по_десять_рублей). Полученное в переменную n сумму N, необходимую для представления, сразу представляем как N монеток по 1 рублю и записываем в буфер. В цикле (пока есть ещё необработанные ) забираем из buffer первый необработанный элемент. Если такой уже есть в результатах (могут быть дублирования, нам надо их избежать), пропускаем итерацию цикла и продолжаем со следующего необработанного элемента. Если же такого элемента в результатах нет, то добавляем его как обработанный и находим от 0 до 3 возможных новых необработанных путём "перевода" монеток по 1 рублю в другой номинал.

Цикл выполняется до тех пор, пока в buffer присутствуют необработанные . По окончание работы цикла в списке result содержатся все представления суммы N различными монетами и купюрами.

0,0(0 оценок)
Ответ:
ekaterinabajewa
ekaterinabajewa
14.07.2021 11:30

import array

# creating array

a = array.array('i', [0, 0, 0, 0])

for i in range(3):

   print("Number", i,end= " ")

   a[i] = int(input())

_t = a[2]

a[2]=a[1]

a[1]=a[0]

a[0]=_t

print("Итог –",end= " ")

for i in range(3):

   print(a[i],end= " ")

Результат работы программы:

Number 0 235

Number 1 534

Number 2 346

Итог – 346 235 534

Объяснение:

Простой метод, но достаточно понятный

создаём и инициализируем массив нулями

Вводим числа от пользователя – вот это end= " " заставляет оставить курсор в той же строке.

Меняем местами

Выводим

Если массив будет больше 3, метод так себе.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота