Форум сайта python.su
Задача заключается в следующим:
Предусматривается поиск “счастливых” билетов. “Счастливым” называется такой троллейбусный билет, в котором сумма первых трех цифр равняется сумме последних трех. Например 030111 (0+3+0 = 1+1+1), 902326 (9+0+2 = 3+2+6), 001100 (0+0+1 = 1+0+0).
Входные данные: два целых неотрицательные числа (0<=a1<=a2<=999999) - аргументы командной строки.
Результат работы: количество “счастливых билетов”, чьи номера, лежат на промежутке от a1 к a2 включительно. Если число на промежутке имеет менее 6 разрядов, считать, что в его начале дописываются нули в необходимом количестве, как это и происходят при нумерации билетов.
Например.
Входные данные: 0 1000 Результат: 1 Объяснение: номер 000000 Входные данные: 1001 1122 Результат: 3 Объяснения: номера 001001, 001010, 001100 Входные данные: 222222 222333 Результат: 7 Объяснение: номера 222222, 222231, 222240, 222303, 222312, 222321, 222330
Вот, что мне пришло в голову:
import sys a1=int(sys.argv[1]) a2=int(sys.argv[2]) number = 0 for i in range(a1,a2+1): a11 = str(i) a_1 = a11 [:] while len(a_1)<=5: b = 6 - len(a_1) for a in range(b): a_1 = "0" + a_1 sum_1=int(a_1[0])+int(a_1[1])+int(a_1[2]) sum_2=int(a_1[3])+int(a_1[4])+int(a_1[5]) if sum_1 == sum_2: number += 1 print number
Офлайн
Вы же не передали аргументы.
Надо в консоле писать
python c:\Users\Oleg\Desktop\bilites.py 0 1000
Офлайн
Alex_HHВот что выдает консоль:
python c:\Users\Oleg\Desktop\bilites.py 0 1000
Отредактировано Xryst (Фев. 21, 2015 18:25:57)
Офлайн
python c:\Users\Oleg\Desktop\biletes.py 0 1000
Офлайн
terabaytВсе сделал, как вы сказали…ну программа не чего не вывела, не пойму почему.
mport sys a1=int(sys.argv[1]) a2=int(sys.argv[2]) number = 0 for i in range(a1,a2+1): a11 = str(i) a_1 = a11 [:] while len(a_1)<=5: b = 6 - len(a_1) for a in range(b): a_1 = "0" + a_1 sum_1=int(a_1[0])+int(a_1[1])+int(a_1[2]) sum_2=int(a_1[3])+int(a_1[4])+int(a_1[5]) if sum_1 == sum_2: number += 1 print number
Офлайн
Xrystона не завершилась)) ушла в бесконечный цикл
ну программа не чего не вывела, не пойму почему.
while len(a_1)<=5: b = 6 - len(a_1)
Офлайн
terabaytИзвини, искал…не чего не нашел, если не трудно дай ссылку, спасибо.
Офлайн
хмм
ну тогда
for i in range(a1, a2 + 1): a_1 = str(i) b = 6 - len(a_1) for a in range(b): a_1 = "0" + a_1 sum_1 = int(a_1[0]) + int(a_1[1]) + int(a_1[2]) sum_2 = int(a_1[3]) + int(a_1[4]) + int(a_1[5]) if sum_1 == sum_2: number += 1 print number
Офлайн
terabaytот теперь думаю зачем…я добавил этот цыкл
хммну тогда
while len(a_1)<=5: b = 6 - len(a_1)
Офлайн