осчитай количества 🔢🌶️ Напишите функцию print_sy...
Created on: December 12, 2025
Answered using GPT-5.1 Thinking by Chat01
Created on: December 12, 2025
Answered using GPT-5.1 Thinking by Chat01
осчитай количества 🔢🌶️
Напишите функцию print_symbol_counts(s), которая принимает на вход слово s и выводит для каждой буквы этого слова в лексикографическом порядке в нижнем регистре на отдельной строке количество её вхождений в это слово в следующем формате:
<L>: <N>
где <L> – некоторая буква слова s, <N> – количество вхождений этой буквы в слово s.
Примечание. Обратите внимание: если в слове встречается одна и та же буква в разных регистрах, то мы считаем это одной и той же буквой (см. тест №4).
Вот готовое решение на Python 👇
pythondef print_symbol_counts(s): s = s.lower() # приводим всё слово к нижнему регистру counts = {} # словарь для подсчёта символов for ch in s: # проходим по каждому символу counts[ch] = counts.get(ch, 0) + 1 for ch in sorted(counts): # выводим в лексикографическом порядке print(f"{ch}: {counts[ch]}")
Как работает:
s.lower() — считаем буквы без учёта регистра (A и a — это одна буква).counts копим, сколько раз встретился каждый символ.sorted(counts) даёт символы в лексикографическом порядке.L: N, например: a: 3.Если нужно считать только буквы, а остальные символы (цифры, пробелы, знаки) игнорировать, можно чуть поправить цикл:
pythondef print_symbol_counts(s): counts = {} for ch in s: if ch.isalpha(): # берём только буквы ch = ch.lower() counts[ch] = counts.get(ch, 0) + 1 for ch in sorted(counts): print(f"{ch}: {counts[ch]}")
Выбирай тот вариант, который соответствует условиям вашей задачи 🙂
Примечание 1. Приведённый ниже код:
print(code_format('s = input()'))
print(code_format('15'))
print(code_format('None'))
должен выводить:
<code>s = input()</code>
<code>15</code>
<code>None</code>
Примечание 2. Во многих тестовых задачах мы обёртываем варианты ответа именно в теги <code></code>.
Вот простейшее решение функции code_format на Python:
pythondef code_format(text): return f"<code>{text}</code>"
Пример:
pythonprint(code_format('s = input()')) print(code_format('15')) print(code_format('None'))
Вывод:
text<code>s = input()</code> <code>15</code> <code>None</code>
Математика округлит 🧠
Напишите функцию math_round_to_int(num), которая принимает положительное число с плавающей точкой num, округляет его до целого по математическим правилам, и возвращает результат.
Примечание 1. Математические правила округления: если дробная часть числа меньше
0.5
0.5, то округляем его в меньшую сторону. В противном случае округляем число в большую сторону. Например:
8.25
≈
8
8.5
≈
9
8.75
≈
9
8.25≈8
8.5≈9
8.75≈9
Примечание 2. Приведённый ниже код:
print(math_round_to_int(1.52))
print(math_round_to_int(0.459))
print(math_round_to_int(10.0))
должен выводить:
2
0
10
Можно сделать своё «правильное» математическое округление, не полагаясь на встроенный round, потому что в Python он использует правило «до ближайшего чётного» для .5.
Вот функция по условию задачи:
pythondef math_round_to_int(num): integer_part = int(num) # целая часть (для положительных — это floor) fractional_part = num - integer_part # дробная часть if fractional_part < 0.5: return integer_part else: return integer_part + 1
Пример из условия:
pythonprint(math_round_to_int(1.52)) # 2 print(math_round_to_int(0.459)) # 0 print(math_round_to_int(10.0)) # 10
Тимур и его числа 🌶️
Тимур загадал число от
1
1 до
n
n (включительно), а Руслан собирается его отгадать. Каждый раз Руслан называет число Тимуру, а Тимур отвечает ему одним из способов: "больше", "меньше", "ты отгадал!". За какое наименьшее количество попыток Руслан может гарантированно угадать число Тимура?
Нужно пользоваться двоичным поиском: каждый раз делить диапазон пополам.
Минимальное гарантированное число попыток равно
То есть:
Например, для:
Если хочешь формулу в коде на Python:
pythonimport math def min_attempts(n): return math.ceil(math.log2(n))