質問するログイン新規登録

回答編集履歴

1

見やすく編集

2016/10/26 13:11

投稿

hiim
hiim

スコア1689

answer CHANGED
@@ -7,31 +7,22 @@
7
7
  }
8
8
 
9
9
  ```
10
-
11
10
  $argが3の時をシュミレートすると
11
+ sample(3)
12
+ は3+sample(2)を返す
13
+ では
14
+ sample(2)
15
+ は2+sample(1)を返す
16
+ 最後に
17
+ sample(1)
18
+ は1を返す
12
19
 
20
+ つまり数学の式みたいに考えると
21
+ sample(3) = 3+sample(2)
13
- return($arg + sample($arg -1));
22
+ sample(2) = 2+sample(1)
14
- が実行される
15
- これは
16
- 3+sample(2)
23
+ sample(1) = 1
17
- なわけですよね?
24
+ それぞれ代入していくと
25
+ sample(3) = 6
26
+ という結果が得られるという仕組みです。
18
27
 
19
- 次に
20
- $argが2の時
21
- return($arg + sample($arg -1));
22
- が実行される
23
- これは
24
- 2+sample(1)
25
- なわけですよね?
26
28
 
27
- 次に
28
- $argが1の時
29
- return(1);
30
- が実行される。
31
-
32
- これ以上sampleは再起的に呼ばれない
33
- sample(1)は1を返す
34
- sample(2)は2+sample(1)を返すが上行から2+sample(1)=3
35
- sample(3)は3+sample(2)を返すが上行から3+sample(2)=6
36
-
37
- で結局$argが3の時は6が得られるという仕組みです