はいどーもー
乙pyです。

暇なので受験シーズンだし
有名中学の算数の問題をプログラムで解けないかと
思ったりしたわけですね。

インターネットの
Googleで調べたんですが
そこで問題が難しそうな学校を見つけてしまったんですね。

皆さん

難しい中学校って知ってます?

自分は近所の中学校に行ったので
知らないんですけど
問題を解いてみたんですねー

というものの第七弾です。


動画解説はこちら



まず始めの問題は

有名中学の入試問題.004

整数を文字にして連結していき
そこに出てくる1の個数を数えればいいだけの
シンプルな問題です。

コードは

ans1=''
for i in range(1,101):
    ans1+=str(i)
print(len(ans1))
ans2=''
for i in range(1,1001):
    ans2+=str(i)
print(len(ans2))
print(ans2.count('1'))

100回だろうと、1000回だろうと
コードの量はほとんど変わりません。

次の問題


有名中学の入試問題.003

細胞B,T

それぞれ1秒毎に
BはBとT
TはBとB

個数としてはどちらも
2倍に増えていますねーー

ということは
8秒後には2 ** 8
倍になっていそうですね

あとはその配分がどうなっているかということ

動画では初めはB
その後BとTの時で処理を分けて増やし
最後にどうなったのかを出力するようにしました。

sells = ['b']
for i in range(8):
    tmp = []
    for sell in sells:
        if sell =='b':
            tmp+=['b','t']
        else:
            tmp+=['b','b']
    sells=tmp

print(sells.count('b'))
print(sells.count('t'))

当初の目論見通り
BとTで足すと256個でしたね。

TとTで

TT兄弟

なんちゃって