PHP
1// 部分和問題 2$arr =[1,2,4,7]; 3$k=13; 4$n=4; 5 6function depth($arr, $k,$n,$sum=0, $i=0){ 7 if($i == $n) { 8 return $sum == $k; 9 }; 10 // 再帰A 11 if(depth($arr, $k,$n, $sum, $i+1)){ return true; } 12 // 再帰B 13 if(depth($arr, $k,$n, $sum+$arr[$i], $i+1)){ return true; } 14 15 return false; 16 17} 18 19var_dump(depth($arr, $k,$n,0,0));
上記のような関数があった時、再帰A,Bがどのような順序で呼ばれ、処理が終了するのか理解できません。
理解の助けとなる、サンプルやアイディアがあればご教授願います。
※再帰処理の特性として下記は多少なりとも理解しています。
・FILO(スタック)
・終了条件を定義する
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/31 18:21
2018/10/31 18:25
2018/11/10 09:02