Задача на программирование питон - Компьютерные вопросы

Вопрос Задача на программирование питон

Регистрация
1 Авг 2013
Сообщения
83
Репутация
-1
Спасибо
0
Монет
0
У редактора школьной газеты Кости опять проблемы. Авторов мало, тексты слишком короткие. Костя предложил авторам увеличить каждое слово до n символов.

Дана строка и число n, которое больше длины строки. Продублируй первый и последний символы строки столько раз, чтобы длина строки была равна n. Этих добавленных в начале и в конце слова символов должно быть поровну. Если невозможно добавить равное количество символов так, чтобы длина строки стала равна n, справа можно добавить точку.
 
Регистрация
30 Июл 2013
Сообщения
81
Репутация
0
Спасибо
0
Монет
0
```python
def extend_word(word, n):
if len(word) >= n:
return word

# Сколько символов нужно добавить всего
to_add = n - len(word)

# Сколько добавить с каждой стороны
each_side = to_add // 2

# Если нечетное количество - справа на 1 больше
right_extra = to_add % 2

# Формируем новое слово
result = (word[0] * each_side) + word + (word[-1] * each_side)

# Добавляем точку справа если нужно
if right_extra:
result += '.'

return result

# Примеры использования:
print(extend_word("cat", 8)) # ccсattt
print(extend_word("dog", 7)) # ddogg.
```

Функция работает следующим образом:

1. Проверяет, если длина слова уже >= n, возвращает исходное слово

2. Вычисляет сколько символов нужно добавить всего (n - текущая длина)

3. Делит это число на 2, чтобы узнать сколько добавить с каждой стороны

4. Проверяет остаток от деления - если есть, значит нужна точка справа

5. Формирует новое слово:
- Добавляет первую букву слева нужное число раз
- Добавляет исходное слово
- Добавляет последнюю букву справа нужное число раз
- При необходимости добавляет точку

6. Возвращает получившееся слово
 
Регистрация
3 Дек 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Привет! Давай решим эту задачу шаг за шаг.

### Шаги:
1. Определим длину исходной строки.
2. Посчитаем, сколько символов нужно добавить в начало и конец строки, чтобы длина стала равна `n`.
3. Если добавление символов в начало и конец не позволяет получить нужную длину, добавим точку справа.

### Решение:

Пусть дана строка `s` и число `n`.

1. Найдем длину строки `s`: `len_s = len(s)`.
2. Вычислим, сколько символов нужно добавить: `diff = n - len_s`.
3. Разделим `diff` на 2, чтобы понять, сколько символов нужно добавить в начало и конец: `half_diff = diff // 2`.
4. Если `diff` нечетное, добавим точку справа.

### Пример кода на Python:

```python
def удлинни_word(s, n):
len_s = len(s)
diff = n - len_s
half_diff = diff // 2

if diff
return s[0] * half_diff + s + '.' + s[-1] * half_diff
else:
return s[0] * half_diff + s + s[-1] * half_diff

# Пример использования:
print(удлинни_word("abc", 10)) # "aabbcc."
```

### Объяснение:
- Мы добавляем половину `diff` символов из начала и конца строки.
- Если `diff` нечетное, добавляем точку справа, чтобы длина строки стала равной `n`.

Надеюсь, это поможет Косте с его проблемами!
 
Регистрация
6 Сен 2013
Сообщения
99
Репутация
0
Спасибо
0
Монет
0
a = input()
n = int(input())
k = n - len(a)

if k <= 0:
print(a)
elif k % 2 == 0:
print((a[0] * (k // 2)) + a + (a[-1] * (k // 2)))
else:
print((a[0] * (k // 2)) + a + (a[-1] * (k // 2)) + '.')
 
Регистрация
26 Дек 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
def increase_word_length(word, n):
if n <= len(word): # Проверка, что n больше длины строки
return word

length_to_add = n - len(word)
if length_to_add % 2 == 0: # Если можем добавить поровну
left_add = right_add = length_to_add // 2
else: # Если нельзя, добавляем по половине и точку
left_add = length_to_add // 2
right_add = length_to_add // 2 + 1

first_char = word[0]
last_char = word[-1]

return (first_char * left_add) + word + (last_char * right_add)

# Пример использования
input_string = "hello"
n = 10
result = increase_word_length(input_string, n)
print(result) # Вывод: "hhhello...."


Эта функция принимает строку word и число n, и корректно изменяет длину строки в соответствии с заданными условиями.
 
Сверху Снизу