Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 21, 2015 17:07:14

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

Задача заключается в следующим:
Предусматривается поиск “счастливых” билетов. “Счастливым” называется такой троллейбусный билет, в котором сумма первых трех цифр равняется сумме последних трех. Например 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
Ну он не работает(

Подкажите, как лутше сделать?

Офлайн

#2 Фев. 21, 2015 17:14:51

Alex_HH
Зарегистрирован: 2014-03-03
Сообщения: 91
Репутация: +  13  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

Вы же не передали аргументы.
Надо в консоле писать

python c:\Users\Oleg\Desktop\bilites.py 0 1000



————–
Зимой и летом heavy metall.
Технический прогресс - это падение вверх. Alex_HH (с)
Эстетизация жестокости есть квинтэссенция смысла человеческого существования. Alex_HH (с)
После бога идет не пустота, там метаданные. Alex_HH (с)

Офлайн

#3 Фев. 21, 2015 18:18:54

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

Alex_HH
python c:\Users\Oleg\Desktop\bilites.py 0 1000
Вот что выдает консоль:

Хоча другая программа запускается:



Отредактировано Xryst (Фев. 21, 2015 18:25:57)

Офлайн

#4 Фев. 21, 2015 19:47:20

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

python c:\Users\Oleg\Desktop\biletes.py 0 1000



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Фев. 21, 2015 20:44:35

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

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

Офлайн

#6 Фев. 21, 2015 20:53:06

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

Xryst
ну программа не чего не вывела, не пойму почему.
она не завершилась)) ушла в бесконечный цикл
while len(a_1)<=5:
 b = 6 - len(a_1)
поищите на форуме, такая задачка уже была



————————————————
-*- Simple is better than complex -*-

Офлайн

#7 Фев. 21, 2015 22:38:47

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

terabayt
Извини, искал…не чего не нашел, если не трудно дай ссылку, спасибо.

Офлайн

#8 Фев. 21, 2015 23:18:41

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

хмм
ну тогда

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



————————————————
-*- Simple is better than complex -*-

Офлайн

#9 Фев. 21, 2015 23:35:02

Xryst
Зарегистрирован: 2015-01-30
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Что не так из щасливыми билетами??

terabayt
хммну тогда
от теперь думаю зачем…я добавил этот цыкл
while len(a_1)<=5:
 b = 6 - len(a_1)
спасибо все заработало

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version