Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ПОМОГИТЕ СРОЧНО ПОЖАЛУЙСТА!КОД НА ПИТОНЕ

Екатерина Кузнецова Ученик (125), на голосовании 1 год назад
Петя хочет отправить Маше виртуальную открытку. Он нашёл красивый шаблон с милой картинкой и пространством для текста. Там помещается ровно n символов. Петя хочет вписать туда короткое поздравление столько раз, сколько получится, а если останется место, то заполнить его восклицательными знаками слева и справа от текста. Знаков должно быть или поровну, или на один больше справа.
Голосование за лучший ответ
Griha Panfilow Знаток (279) 1 год назад
Пете нужно разделить доступное место на две равные части или на две почти равные части (одну часть больше на один символ). Затем он должен вписать свое короткое поздравление в обе части, заполняя оставшееся место в каждой части восклицательными знаками.

Например, если длина поздравления равна 5 символам, а доступное место - 12 символов:
12 / 2 = 6 (остается 0 символов)
Интервал: !!!!поздравление!!!!

Если длина поздравления 4 символа, а доступное место - 12 символов:
12 / 2 = 6 (остается 0 символов)
Интервал: !!!!поздравление!!!!

Если длина поздравления 3 символа, а доступное место - 12 символов:
12 / 2 = 6 (остается 0 символов)
Интервал: !!!поздравление!!!
_ASLD_ Профи (516) 1 год назад
Ответ сгенирированный при помощи ChatGPT:
Для решения этой задачи можно использовать следующий алгоритм:

1. Определить длину текста поздравления.
2. Рассчитать, сколько раз текст поздравления поместится в пространство шаблона.
3. Рассчитать остаток места после вписания текста.
4. Разделить остаток места поровну между текстом поздравления и восклицательными знаками.

Напишем функцию на Python, которая реализует этот алгоритм:
 def generate_card(message, n): 
message_length = len(message)
repeat_times = n // message_length
remainder = n % message_length

result = message * repeat_times
if remainder > 0:
result += message[:remainder]
remaining_space = n - len(result)
if remaining_space % 2 == 0:
result = '!' * (remaining_space // 2) + result + '!' * (remaining_space // 2)
else:
result = '!' * (remaining_space // 2) + result + '!' * (remaining_space // 2 + 1)

return result

# Пример использования:
message = "С днем рождения, Маша!"
n = 30
print(generate_card(message, n))

Этот код принимает текст поздравления и размер пространства в шаблоне и возвращает строку, представляющую виртуальную открытку с текстом поздравления, занятым местом и восклицательными знаками по бокам, если осталось свободное место.
Миша Захаров Знаток (354) 1 год назад
def create_card(message, n):
fits = n // len(message)
remainder = n % len(message)

repeated_message = message * fits

exclamation_marks = remainder // 2
if remainder % 2 != 0:
exclamation_marks_right = exclamation_marks + 1
else:
exclamation_marks_right = exclamation_marks

left_side = '!' * exclamation_marks
right_side = '!' * exclamation_marks_right

final_message = left_side + repeated_message + right_side

return final_message

message = "Happy Birthday"
n = 50
p
rint(create_card(message, n))

+- так, подкорректируй
Похожие вопросы