BOJ 17283 I am Groot


https://www.acmicpc.net/problem/17283
1秒、256 MBメモリ
input :

  • 中心茎長L(6<=L<=10000)

  • 比率R(1<=R<=99)
    output :

  • 中心茎を除く枝の全長の和.△小数点以下を捨てる.
    条件:

  • 枝を2本に分ける.

  • N本目の枝の長さはN-1本目の枝の長さのR/100倍である.△小数点以下を捨てる.

  • N本目の枝の長さが5以下であれば、N−1本目の枝では成長が停止する.
  • 現在の分化の回数と現在の分化の長さを再帰的に入力
    input:数本目、枝の長さ.
    1本の分化の長さが5以下であれば、これまで計算した木の長さに戻る.
    枝は1->2->4->8...2の平方が増加します.
    n-1枝->n枝に向かうとき
    分化した枝の全長は2^(n−1){(n−1枝長)パーセント}であり,これを総変数に格納した.
    熱いうちにwhileドアで回しましょう
    終了条件はLが5未満の場合breakです.
    正しいコード:
    import math
    L = int(input())
    R = int(input())
    total = 0
    cnt = 2
    while 1:
        L = int(L * (R / 100))
        if L <= 5:
            break
        total += (cnt * L)
        cnt *= 2
    print(total)
    

    途中if L<5:で書き間違えました.
    和弦をよく見て...