@Emince

Как посчитать количество одинаковых цифр в 4-х значном числе?

На вход получаем два числа, 1000 и 2600. Необходимо вывести все числа с тремя одинаковыми числами (не используя списки). Начал как - то так, но закончить не могу.... Как посчитать одинаковые цифры и вывести числа?

num_1 = int(input('Введите первое число: '))
num_2 = int(input('Введите второе число: '))
count = 0

for i in range(number1, number2 + 1, 1):
i = str(i)
for num in ........:
if num == ............:
..........................
  • Вопрос задан
  • 2530 просмотров
Решения вопроса 1
a777mp198
@a777mp198
Python developer
(Ответ сгенерирован искусственным интеллектом!)
Вы можете решить эту задачу, преобразовав каждое число в строку, а затем использовать метод count() для подсчета количества вхождений каждой цифры. Затем можно проверить, есть ли у числа три одинаковых цифры, используя условие if. Например:
num_1 = 1000
num_2 = 2600

for i in range(num_1, num_2 + 1):
    s = str(i)
    for c in s:
        if s.count(c) == 3:
            print(i)
            break

Здесь мы проходимся по каждому числу i в диапазоне от num_1 до num_2, преобразуя его в строку s. Затем мы проходимся по каждой цифре c в строке s, и если c встречается в строке s три раза, мы выводим число i и переходим к следующему числу. Обратите внимание, что мы используем оператор break, чтобы выйти из цикла, когда мы находим число с тремя одинаковыми цифрами, потому что дальнейший поиск в этом числе бессмысленен.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Составь коллекцию, в которой будет храниться набор пар: цифра и сколько раз она встретилась. Лучше всего подойдёт словарь.
Дальше просто перебери элементы словаря, если есть элемент, у которого значение равно 3, значит, число подходит.

Совет: посмотри в сторону collections.Counter.
Ответ написан
Комментировать
mayton2019
@mayton2019
Bigdata Engineer
Можно попробовать решить обратную зачачу. Генерировать все с 3 одинаковыми.

Например.
111x = генератор для последовательности 1111,1112,1113....1119
11x1 = для 1111, 1121,1131....


А потом - отфильтровать те которые не заходят в заявленный диапазон.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы