Python Challenge Level10
※ネタバレ有り
やっとレベルが2桁になったよ!
問題
前回より、
http://www.pythonchallenge.com/pc/return/bull.html
idとpassを聞かれたら"huge"と"file"で。
考え方
牛の写真があって、下に
「len(a[30]) = ?」
と書かれています。
画像の牛部分がリンクになっているのでクリックすると、
a = [1, 11, 21, 1211, 111221,
http://www.pythonchallenge.com/pc/return/sequence.txt
この数列をa[30]まで求めれば良い訳ですね!
・・・と、ここまで辿り着いたのが約10日前。数列苦手なのとゴチャゴチャしたループが書けなくて、やっとこさ書きました。かなりひどいものをorz
とりあえず、数列の謎を解かないといけませんね!
しばらく考えても分からないのでグーグル先生先生に聞きました!
1 11 21 1211 111221 - みずぴー日記
こちらで詳しく解説されています。
「カッコウはコンピュータ〜」で出てきてたのかこれ。読んだの5年くらい前だから全然覚えてなかった><
あとはこれをコンピュータにやらせれば良いのです。
回答
#!/usr/bin/env python #! -*- coding: utf-8 -*- """ level 10 http://www.pythonchallenge.com/pc/return/bull.html """ import time def seq(base): gen = [] cnt = 1 if len(base) <= 1: print ("1\n2") seq("11") else: for i in range(1, len(base)): if base[i] == base[i-1]: cnt += 1 else: gen.append(str(cnt)) gen.append(base[i-1]) cnt = 1 gen.append(str(cnt)) gen.append(base[i]) next = "".join(gen) print len(next) time.sleep(1) seq(next) if __name__ == "__main__": seq("1")
コードきたねえええええええええ
なんというやっつけ仕事・・・・
ま、まあ動くからね、一応。数学苦手だし。関係ないですね><
実行結果
1 2 2 4 6 6 8 10 14 20 26 34 46 62 78 102 134 176 226 302 408 528 678 904 1182 1540 2012 2606 3410 4462 5808
31個目まで自力で数えるのもバカみたいだった・・・
とにかく答えは5808です。
感想
なんだろうこの敗北感は・・・
修行が足りません><