Python中卡的原始编号(查找丢失的卡)



我正试图找出原来的卡片,但现在不见了。

为了更深入地了解,我将提供几个例子:

示例1

最初有多少张牌?4

你还有什么卡?1

你还有什么卡?4

你还有什么卡?2

您丢失了卡3

示例2

最初有多少张牌?2

你还有什么卡?2

您丢失了卡1

我遇到的问题是:a) 我不确定如何根据初始卡号生成原始输入,以及b) 我的解决方案算法有缺陷,我不知道如何克服它。

这是我的部分代码:

orig = int(raw_input("How many cards originally? "))
card1 = int(raw_input("What card do you still have? "))
card2 = int(raw_input("What card do you still have? "))
card3 = int(raw_input("What card do you still have? "))
calculation = card1 + card2 + card3
print calculation - orig

然而,它没有达到我想要的标准。

如果你能帮我的话,提前非常感谢。如果有人能写一个解决方案,或者甚至指导我这样做,那就太好了

PS。如果我没有很好地解释,这就是我被要求回答的问题集:写一个程序,找出你放错地方的卡片。你的程序应该首先询问用户你最初有多少张卡片。然后,你的程序应该要求你输入你仍然拥有的每一张卡片,每行一个数字。然后,您的程序应该打印出丢失卡片的价值。

使用range()获取包含卡片值的列表,并将其放入set中。从集合中删除输入值,直到只剩下一个为止。那是丢失的卡片。

orig = int(raw_input("How many cards originally? "))
allcards = set(range(1, orig+1))
while len(allcards) > 1:
    card = int(raw_input("What card do you still have? "))
    allcards.remove(card)
print "You are missing card", list(allcards)[0]

最新更新