回答編集履歴

1 次行へ改行しないよう行の長さを調整

MAGP

MAGP score 168

2015/06/06 17:28  投稿

わかりやすいよう再帰に合わせてインデントしてみました
```lang-python
# 最初の呼び出し
branch(100)
#1 branch(length=100)
#2 100 < 10 は False 処理継続
#3 forward(100)
#4 left(30)
#5 branch(100/2)
   #1 branch(length=50)
   #2 50 < 10 は False 処理継続
   #3 forward(50)
   #4 left(30)
   #5 branch(50/2)
       #1 branch(length=25)
       #2 25 < 10 は False 処理継続
       #3 forward(25)
       #4 left(30)
       #5 branch(25/2)
           #1 branch(length=12.5)
           #2 12.5 < 10 は False 処理継続
           #3 forward(12.5)
           #4 left(30)
           #5 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #6 right(60)
           #7 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #8 left(30)
           #9 forward(-12.5)
       #6 right(60)
       #7 branch(25/2)
           #1 branch(length=12.5)
           #2 12.5 < 10 は False 処理継続
           #3 forward(12.5)
           #4 left(30)
           #5 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #6 right(60)
           #7 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #8 left(30)
           #9 forward(-12.5)
       #8 left(30)
       #9 forward(-25)
   #6 right(60)
   #7 branch(50/2)
       #1 branch(length=25)
       #2 25 < 10 は False 処理継続
       #3 forward(25)
       #4 left(30)
       #5 branch(25/2)
           #1 branch(length=12.5)
           #2 12.5 < 10 は False 処理継続
           #3 forward(12.5)
           #4 left(30)
           #5 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #6 right(60)
           #7 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #8 left(30)
           #9 forward(-12.5)
       #6 right(60)
       #7 branch(25/2)
           #1 branch(length=12.5)
           #2 12.5 < 10 は False 処理継続
           #3 forward(12.5)
           #4 left(30)
           #5 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #6 right(60)
           #7 branch(12.5/2)
               #1 branch(length=6.25)
               #2 6.25 < 10 は True なので return (呼び出し元へ戻る)
           #8 left(30)
           #9 forward(-12.5)
       #8 left(30)
       #9 forward(-25)
   #8 left(30)
   #9 forward(-50)
#6 right(60)
#7 branch(100/2)
   #--- 上にある「#1 branch(length=50)」から「#9 forward(-50)」までと全く同じなので割愛 ---
   #-上にある「#1 branch(length=50)」から「#9 forward(-50)」までと全く同じなので割愛-
#8 left(30)
#9 forward(-100)
input()
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る