На отрезке [100, N] (210 < N < 231) найти количество чисел, составленных из цифр а, b, с
Мой код
N = int(input("Введите правую границу отрезка N,(210 < N < 231): "))
print("Введите a, b и с: ")
a = int(input())
b = int(input())
c = int(input())
def func(v):
x = v // 100
y = (v % 100) // 10
z = (v % 100) % 10
if (x == a) or (x == b) or (x == c):
if (y == a) or (y == b) or (y == c):
if (z == a) or (z == b) or (z == c):
print(x, y, z)
for i in range(100, N):
func(i)
print(k)
if k == 0:
print("Ошибка. Числа, состоящие из ", a," ", b, " ", c, " Отсуствуют. Попробуйте снова")
Не могу только подсчитывать эти числа.Что мне нужно сделать.
Ответы (1 шт):
Автор решения: reneget_
→ Ссылка
from itertools import permutations
N = int(input())
a, b, c = input(), input(), input()
for chance in permutations([a,b,c]):
if 100 >= int(''.join(chance)) < N:
print(''.join(chance))
В начале мы принимаем на вход N, а потом три числа (строковым типом данных). Для перебора всех возможных вариантов я использовал библиотеку itertools и её модуль permutations. При переборе элементов я просто проверяю вхождение получившегося числа на искомый отрезок, а затем вывожу его