Уведомления

Группа в Telegram: @pythonsu

#1 Май 8, 2018 18:00:07

Yuliya00
Зарегистрирован: 2018-05-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Gомогите решить задачу на питоне 3!

Условие
Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди названных ей чисел есть задуманное или NO в противном случае. После нескольких заданныъх вопросов Беатриса запуталась в том, какие вопросы она задавала и какие ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.

В первой строке задано n - максимальное число, которое мог загадать Август. Далее каждая строка содержит вопрос Беатрисы (множество чисел, разделенных пробелом) и ответ Августа на этот вопрос.

Вы должны вывести через пробел, в порядке возрастания, все числа, которые мог задумать Август.

n=int(input())
b=set(range(1, n+1))
while True:
i=input().split()
if i[0]=='HELP':
break
else:
i=float(i)
ans=input()
if ans =='YES':
b=b|set(i)
else:
b=b-set(i)
b=list(b)
for k in range (len(b)):
if b[k]>b[k-1]:
b[k], b[k-1]=b[k-1], b[k]
print(b)
Не разрешает присвоить b тип list

Офлайн

#2 Май 8, 2018 19:43:26

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Gомогите решить задачу на питоне 3!

а что там у вас в b до его преобразования в list? потому как

 >>> b = {21,13,23,45,67}
>>> print(type(b))
<class 'set'>
>>> b = list(b)
>>> print(type(b),b)
<class 'list'> [67, 13, 45, 21, 23]
нет никаких проблем

Офлайн

#3 Май 9, 2018 14:01:59

Yuliya00
Зарегистрирован: 2018-05-08
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Gомогите решить задачу на питоне 3!

marvellik
а что там у вас в b до его преобразования в list? потому как
Вот входные данные:
1 2 3 4 5
YES
2 4 6 8 10
NO
HELP

Офлайн

#4 Май 9, 2018 14:44:35

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Gомогите решить задачу на питоне 3!

я вам предлагал найти ошибку в вашем коде проверив что за тип b если вызывает ошибку при преобразовании. а решение готовое не проблема но вам то оно что даст:?

 n = int(input())
all_nums = set(range(1, n + 1))
possible_nums = all_nums
while True:
    guess = input()
    if guess == 'HELP':
        break
    guess = {int(x) for x in guess.split()}
    answer = input()
    if answer == 'YES':
        possible_nums &= guess
    else:
        possible_nums &= all_nums - guess
print(' '.join([str(x) for x in sorted(possible_nums)]))

Офлайн

#5 Май 25, 2018 09:08:11

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2583
Репутация: +  60  -
Профиль   Отправить e-mail  

Gомогите решить задачу на питоне 3!

Решение етой задачи есть готовое в нете и гуглиться за 5 минут.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version