-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。うまく説明できていない場合は、次の質問に答えるように言われました。どのカードを置き忘れたかを調べるプログラムを作成してください。あなたのプログラムは、最初に何枚のカードを持っていたかをユーザーに尋ねる必要があります。次に、プログラムは、まだ持っている各カードを 1 行に 1 つずつ入力するように求めます。次に、プログラムは不足しているカードの値を出力する必要があります。

4

2 に答える 2

3

range()カードの値を含むリストを取得し、それらを に入れるために使用しますset。残りが 1 つになるまで、セットから入力値を削除します。それが欠けているカードです。

于 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 に答える