ブルーブリッジカップデイリーワン質問(2):ウィーナーは年齢を推測する(python)

トピック:

アメリカの数学者N.ウィーナーは早熟で、11歳で大学に進学しました。彼は1935年から1936年まで中国の清華大学で講義をするよう招待されました。
かつて、彼は重要な会議に出席し、彼の若い顔は目を引くものでした。そこで誰かが彼の年齢について尋ねると、彼は答えました:
「私の年齢の立方体は4桁の数字です。私の年齢の4乗は6桁の数字です。これらの10桁にはたまたま0から9までの10桁が含まれています。それぞれが1回だけ登場しました。」
当時の彼の若さを計算してください。

解決:

逆解を使用すると
、10の3乗は4桁の数字で
、30の3乗は5桁の数字です。
したがって、ウィーナーの年齢は10〜30歳です
。1つずつ比較してください。
最初に0〜9を含むリストで
、10から始めて
みてください
年齢の3乗および4乗のクエリごとに、年齢の各桁0〜9
比較され、各比較の結果削除されます。
最終的なリストが空の場合、0〜9をすべて削除すると
、この年齢はその時点のWiener年齢になります

コード:

for i in range(10, 30):
    number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    age_1 = list(str(i ** 3))
    age_2 = list(str(i ** 4))

    for j in age_1:
        try:
            number.remove(int(j))
        except:
            pass
        else:
            pass

    for y in age_2:
        try:
            number.remove(int(y))
        except:
            pass
        else:
            pass

    if not number:
        print(i)
        break

回答:
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_50791900/article/details/112312490