Пайтон. Розрахуйте кількість цілих чисел у діапазоні від 100 до 999, в яких є дві однакові цифри.
Ответы
count = 0 # лічильник зберігає кількість знайдених чисел
for i in range(100, 1000):
num_str = str(i) # перетворюємо число на рядок
if num_str[0] == num_str[1] or num_str[0] == num_str[2] or num_str[1] == num_str[2]:
# якщо у числі є дві однакові цифри, то збільшуємо лічильник
count += 1
print(count) # виводимо знайдену кількість чисел
У цьому коді ми проходимо циклом по числам в діапазоні від 100 до 999. Для кожного числа перетворюємо його на рядок і перевіряємо, чи є в числі дві однакові цифри за допомогою порівнянь рядкових символів (за індексами). Якщо у числі знайдено дві однакові цифри, то збільшуємо лічильник. На виході отримаємо кількість знайдених чисел, у яких є дві однакові цифри.
Ответ:
print(1000-100-list(map(lambda x:len(set(str(x))),range(100,1000))).count(3))
Объяснение:
Здесь считаются все у которых 3 числа разные и отнимается это от (1000-100) - сколько всего чисел.
111, 222, 333,... - тоже считаются, потому что в них как минимум 2 одинаковые цифры.
Если надо четко, в которых только 2 одинаковые цифры, то это значительно уменьшает решение и упрощает задачу:
print(list(map(lambda x:len(set(str(x))),range(100,1000))).count(2))