Найти в диапазоне число начинающиеся и заканчивающиеся на 8
Пользователь вводит числа a и b , задающие диапазон [a;b]. В этом диапазоне нужно найти числа начинающиеся и заканчивающиеся на 8. Только через цикл while или for , превращать число в str нельзя.
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
По добру, надо делать так:
def isValid(num):
digs = []
while num > 0:
digs.append(num % 10)
num //= 10
return digs[0] == 8 and digs[-1] == 8
print([i for i in range(int(input()), int(input()) + 1) if isValid(i)])
А если по приколу, то так:
import math
import operator
[ i for i in range(int(input()), int(input()) + 1) if all ( k == 8 for k in operator.itemgetter(0, -1)([ (i // (10 ** x) if x else i) % 10 for x in range(int(math.log10(i) + 1)) ]) )]
P.S. Слишком много промучался, чтобы написать это. Пожалуйста, не ставьте минус. Все ради азарта. И главное, все без str()