lang
1from turtle import * 2 3def branch(length): # 1 4 if length < 10: # 2 5 return # 2' 6 forward(length) # 3 7 left(30) # 4 8 branch(length/2) # 5 9 right(60) # 6 10 branch(length/2) # 7 11 left(30) # 8 12 forward(-length) # 9 13 14branch(100) 15input()
これの処理の順番を最後まで番号で書いて教えてください
またその際にbranchの引数lengthには何の数値が入っているのかも書いてくれるとありがたいです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
こんなんでいかがでしょうか。
各行、後ろの値が length の値です。
lang
1#1 100 2#2 100 3#3 100 4#4 100 5#5 100 6#1 50 7#2 50 8#3 50 9#4 50 10#5 50 11#1 25 12#2 25 13#3 25 14#4 25 15#5 25 16#1 12 17#2 12 18#3 12 19#4 12 20#5 12 21#1 6 22#2 6 23#2' 6 24#6 12 25#7 12 26#1 6 27#2 6 28#2' 6 29#8 12 30#9 12 31#6 25 32#7 25 33#1 12 34#2 12 35#3 12 36#4 12 37#5 12 38#1 6 39#2 6 40#2' 6 41#6 12 42#7 12 43#1 6 44#2 6 45#2' 6 46#8 12 47#9 12 48#8 25 49#9 25 50#6 50 51#7 50 52#1 25 53#2 25 54#3 25 55#4 25 56#5 25 57#1 12 58#2 12 59#3 12 60#4 12 61#5 12 62#1 6 63#2 6 64#2' 6 65#6 12 66#7 12 67#1 6 68#2 6 69#2' 6 70#8 12 71#9 12 72#6 25 73#7 25 74#1 12 75#2 12 76#3 12 77#4 12 78#5 12 79#1 6 80#2 6 81#2' 6 82#6 12 83#7 12 84#1 6 85#2 6 86#2' 6 87#8 12 88#9 12 89#8 25 90#9 25 91#8 50 92#9 50 93#6 100 94#7 100 95#1 50 96#2 50 97#3 50 98#4 50 99#5 50 100#1 25 101#2 25 102#3 25 103#4 25 104#5 25 105#1 12 106#2 12 107#3 12 108#4 12 109#5 12 110#1 6 111#2 6 112#2' 6 113#6 12 114#7 12 115#1 6 116#2 6 117#2' 6 118#8 12 119#9 12 120#6 25 121#7 25 122#1 12 123#2 12 124#3 12 125#4 12 126#5 12 127#1 6 128#2 6 129#2' 6 130#6 12 131#7 12 132#1 6 133#2 6 134#2' 6 135#8 12 136#9 12 137#8 25 138#9 25 139#6 50 140#7 50 141#1 25 142#2 25 143#3 25 144#4 25 145#5 25 146#1 12 147#2 12 148#3 12 149#4 12 150#5 12 151#1 6 152#2 6 153#2' 6 154#6 12 155#7 12 156#1 6 157#2 6 158#2' 6 159#8 12 160#9 12 161#6 25 162#7 25 163#1 12 164#2 12 165#3 12 166#4 12 167#5 12 168#1 6 169#2 6 170#2' 6 171#6 12 172#7 12 173#1 6 174#2 6 175#2' 6 176#8 12 177#9 12 178#8 25 179#9 25 180#8 50 181#9 50 182#8 100 183#9 100
投稿2015/06/05 20:11
総合スコア159
0
わかりやすいよう再帰に合わせてインデントしてみました
lang
1# 最初の呼び出し 2branch(100) 3 4#1 branch(length=100) 5#2 100 < 10 は False 処理継続 6#3 forward(100) 7#4 left(30) 8#5 branch(100/2) 9 #1 branch(length=50) 10 #2 50 < 10 は False 処理継続 11 #3 forward(50) 12 #4 left(30) 13 #5 branch(50/2) 14 #1 branch(length=25) 15 #2 25 < 10 は False 処理継続 16 #3 forward(25) 17 #4 left(30) 18 #5 branch(25/2) 19 #1 branch(length=12.5) 20 #2 12.5 < 10 は False 処理継続 21 #3 forward(12.5) 22 #4 left(30) 23 #5 branch(12.5/2) 24 #1 branch(length=6.25) 25 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 26 #6 right(60) 27 #7 branch(12.5/2) 28 #1 branch(length=6.25) 29 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 30 #8 left(30) 31 #9 forward(-12.5) 32 #6 right(60) 33 #7 branch(25/2) 34 #1 branch(length=12.5) 35 #2 12.5 < 10 は False 処理継続 36 #3 forward(12.5) 37 #4 left(30) 38 #5 branch(12.5/2) 39 #1 branch(length=6.25) 40 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 41 #6 right(60) 42 #7 branch(12.5/2) 43 #1 branch(length=6.25) 44 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 45 #8 left(30) 46 #9 forward(-12.5) 47 #8 left(30) 48 #9 forward(-25) 49 #6 right(60) 50 #7 branch(50/2) 51 #1 branch(length=25) 52 #2 25 < 10 は False 処理継続 53 #3 forward(25) 54 #4 left(30) 55 #5 branch(25/2) 56 #1 branch(length=12.5) 57 #2 12.5 < 10 は False 処理継続 58 #3 forward(12.5) 59 #4 left(30) 60 #5 branch(12.5/2) 61 #1 branch(length=6.25) 62 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 63 #6 right(60) 64 #7 branch(12.5/2) 65 #1 branch(length=6.25) 66 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 67 #8 left(30) 68 #9 forward(-12.5) 69 #6 right(60) 70 #7 branch(25/2) 71 #1 branch(length=12.5) 72 #2 12.5 < 10 は False 処理継続 73 #3 forward(12.5) 74 #4 left(30) 75 #5 branch(12.5/2) 76 #1 branch(length=6.25) 77 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 78 #6 right(60) 79 #7 branch(12.5/2) 80 #1 branch(length=6.25) 81 #2 6.25 < 10 は True なので return (呼び出し元へ戻る) 82 #8 left(30) 83 #9 forward(-12.5) 84 #8 left(30) 85 #9 forward(-25) 86 #8 left(30) 87 #9 forward(-50) 88#6 right(60) 89#7 branch(100/2) 90 #-上にある「#1 branch(length=50)」から「#9 forward(-50)」までと全く同じなので割愛- 91#8 left(30) 92#9 forward(-100) 93 94input()
投稿2015/06/06 08:25
編集2015/06/06 08:28総合スコア153
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ruby の trace という機能を使ってみました。
- Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > tracerライブラリ http://rurema.clear-code.com/2.2.0/library/tracer.html
コードをすこし変更します。
lang
1def forward(length) end 2def left(length) end 3def right(length) end 4 5def branch(length) # 1 TRACE 6 puts " # branch(#{length}) TRACE" 7 if length < 10 # 2 TRACE 8 return # 2' TRACE 9 end 10 forward(length) # 3 TRACE 11 left(30) # 4 TRACE 12 branch(length/2) # 5 TRACE 13 right(60) # 6 TRACE 14 branch(length/2) # 7 TRACE 15 left(30) # 8 TRACE 16 forward(-length) # 9 TRACE 17end 18 19branch(100)
こままま ruby -rtracer でじっこうすると余計なものがたくさんでるので
出力結果をパイプでつないで加工しました。
$ ruby -rtracer 1.rb | grep TRACE | grep -v puts | cut -b40- RACE # 1 TRACE # branch(100) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(50) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(25) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(25) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(50) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(25) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(25) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(12) TRACE # 2 TRACE # 3 TRACE # 4 TRACE # 5 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 6 TRACE # 7 TRACE # 1 TRACE # branch(6) TRACE # 2 TRACE # 2' TRACE # 2' TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE # 8 TRACE # 9 TRACE
投稿2015/06/06 01:49
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。