我正试图找出原来的卡片,但现在不见了。
为了更深入地了解,我将提供几个例子:
示例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]