Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 20, 2020 21:57:04

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

помогите понять че надо то в задании (см. в теме) [решено]

Составить программу, которая позволяет найти произведение цифр некратных трем четырехзначного числа (3 балла).

блин может это я туплю но не как не могу понять что хотя то
может кто распарсит это задние?

произведение цифр понятно x * y
не кратных трем понятно x % 3 != 0, y % 3 != 0
но откуда и куда четырехзначное число?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 21, 2020 13:12:06)

Офлайн

#2 Сен. 20, 2020 23:08:13

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

помогите понять че надо то в задании (см. в теме) [решено]

Число имеет вид abcd
где a,b,c,d некоторые цифры.
Оставить цифры не кратные 3
перемножить то что осталось.



Офлайн

#3 Сен. 21, 2020 05:48:19

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

помогите понять че надо то в задании (см. в теме) [решено]

 from functools import reduce
print(reduce(lambda x, y: x * y, [int(i) for i in input() if int(i) % 3 != 0]))

Отредактировано Vigi (Сен. 21, 2020 05:51:24)

Офлайн

#4 Сен. 21, 2020 06:25:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

помогите понять че надо то в задании (см. в теме) [решено]

AD0DE412
блин может это я туплю но не как не могу понять что хотя то
может кто распарсит это задние?
Вообще, для любой задачи ты применяешь следующий алгоритм:

Перед решением дано: то-то и то-то
Нужно получить: то-то и то-то

Так ты формируешь предусловие и постусловие алгоритма. Предусловие нужно максимально ослабить по деталям в нём, а постусловие нужно максимально усилить по деталям в нём.

Например:
Допустим, у тебя сначала в задаче сформулировано так “дан текст на русском, а нужно получить этот текст прописными буквами”. Ты делишь эту задачу на предусловие и постусловие.
Предусловие
Дано: текст на русском
Постусловие
Получить: текст прописными буквами
Сначала ослабляешь предусловие
Дано: текст на каком-то языке
Ещё дальше ослабляешь предусловие
Дано: текст какой-то
Вроде достаточно ослабил, хотя дальше можно ослабить до вообще любой строки, хоть до бинарных данных. Так и сделаем.
Дано: строка с какими-то данными
Предусловие ослаблено максимально, дальше можно переходить к работе с постусловием.
Дальше усиливаешь постусловие
Получить: текст с русскими прописными буквами
У нас поменялось предусловие и понятие “текст” видоизменилось
Получить: исходную строку с русскими буквами, переведёнными в прописные
В итоге у тебя получилось
Дано: строка с какими-то данными
Получить: исходную строку с русскими буквами, переведёнными в прописные
Тут получилось максимально слабое предусловие и максимально сильное постусловие.

Вот теперь ты можешь взять предусловие и постусловие и, объединив их в одно предложение, придумать через это предложение имя алгоритму, сократив всё предложение до пары-тройки слов.
Поступает строка с какими-то данными и получается исходная строка с русскими буквами, переведёнными в прописные.
->
переводит русские буквы в прописные
Дальше из декларативной формы, которая отвечает на вопрос "что делает функция?“ , мы переводим имя функции в императивную форму, которая отвечает на вопрос ”что сделать функции?"
переводит русские буквы в прописные
->
перевести русские буквы в прописные
Дальше переводим это на английский язык
перевести русские буквы в прописные
->
capitalize_cyrillic_letters

Так у тебя задача “дан текст на русском, а нужно получить этот текст прописными буквами” превратилась в функцию
capitalize_cyrillic_letters(string) -> string
Естественно, когда ты это умеешь делать, это происходит за несколько секунд всё. А когда ты не умеешь этого делать, то ты тупишь и не можешь сообразить, что вообще придумать и как это назвать, потому что придумать можно много чего и назвать это можно кучей всяких способов.


Дальше твоя задача
AD0DE412
Составить программу, которая позволяет найти произведение цифр некратных трем четырехзначного числа (3 балла).
Когда мы умеем всё это делать, мы просто ищем, что дано и что получить. Всё это быстро в голове разворачивается и генерируется имя функции.

Что дано? Четырёхзначное число.
Что получить? Произведение цифр исходного числа, каждое из которых не кратно трём.
Имя функции:
digits_notdiv3_multiply(number) -> number


tags: precondition postcondition



Отредактировано py.user.next (Сен. 21, 2020 13:37:15)

Офлайн

#5 Сен. 21, 2020 13:11:33

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

помогите понять че надо то в задании (см. в теме) [решено]

всем спасибо
ps doza_and просто вытащили из тупняка … спасиб



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Сен. 21, 2020 13:14:00)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version