Тема: Ціле число з нулями попереду, або задача на "щасливий квиток"
Доброго дня!
У написанні коду для вирішення задачі на "щасливий квиток" зіткнувся з проблемою: у циклі потрібно перебрати усі можливі значення квитків на певному проміжку, початок і кінець якого ввдодяться користувачем у консоль, а тоді вивести кількість "щасливих" квитків. Проблема власне в тому, що деякі числа можуть мати наступний вигляд: 001234, а отже при перетворенні їх з str на int отримане число буде 1234.
Я ввів переформатування строки на випадок, якщо користувачем буде введено число, довжина якого менше 6 символів:
start = '{:06}'.format(int(tickets[0]))
end = '{:06}'.format(int(tickets[1]))
Вся справа в тому, що тоді дійсне ціле число перетворюється у строку, а при перетворенні назад у ціле число знову втрачає свої нулі на початку (001234 -- 1234).
У циклі range() для початку та кінця можливо задати лише цілі числа, а не строки, тому виникли певні проблеми..
Прикріплюю повний код програми нижче.
Завчасно дякую за будь-які поради!
import sys
tickets = list(sys.argv[1:3])
length = []
start = '{:06}'.format(int(tickets[0]))
end = '{:06}'.format(int(tickets[1]))
line = [int(start), int(end)]
for i in range(line[0], line[1]):
b = i // 1000
one = b // 100
two = b % 11
three = b % 10
c = i % 1000
four = c // 100
five = c % 11
six = c % 10
if one + two + three == four + five + six:
length.append(i)
print (len(length))