-1

我正在尝试找出存在但现在丢失的原始卡。

为了更深入,我将提供一些示例:

示例 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。如果我没有很好地解释它,这就是我被要求回答的问题集:编写一个程序来计算出你放错了哪张卡片。您的程序应该首先询问用户您最初拥有多少张卡片。然后,您的程序应该要求您输入您仍然拥有的每张卡片,每行一个数字。然后你的程序应该打印出丢失卡的价值。

4

2 回答 2

3

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

于 2012-09-07T05:52:36.140 回答
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]
于 2012-09-07T12:40:06.680 回答