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

时间:2012-09-07 05:46:40

标签: 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。如果我没有那么好解释,这是我被告知回答的问题集: 编写程序以确定您放错了哪张卡。您的程序应首先询问用户您最初拥有的卡数。然后,您的程序会要求您输入您仍然拥有的每张卡,每行一个号码。然后你的程序应该打印掉丢失的卡的值。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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]
相关问题