js再帰
2656 ワード
js再帰
再帰的には、大きな問題をn個の似たような小さな問題に分解し、自分を呼び出してこれらの小さな問題を解決し、結果を求めることです.
実践:ハノイタワー 塔の設備には三本の柱と直径がそれぞれ異なる中空ディスクがあります.最初は源柱にあるすべての円盤が、より小さな円盤の上に並べられていた.目標は、円盤を他の柱に移動させるたびに、最後に一つの円盤を目標柱に移動させることで、大きな円盤を小さな円盤の上に置いてはいけない.
コードの例:階乗 数学公式:nn*(n-1)**1
コードの例:
再帰的には、大きな問題をn個の似たような小さな問題に分解し、自分を呼び出してこれらの小さな問題を解決し、結果を求めることです.
実践:
コードの例:
;(function(){
var i = 0;
/*
* disc:
* src:
* aux:
* dst:
*/
var hanoi = function(disc, src, aux, dst){
// debugger;
if (disc > 0) {
hanoi(disc-1, src, dst, aux);
document.writeln("Move disc "+ disc +" from "+ src +" to "+ dst + "
");
hanoi(disc-1, aux, src, dst);
i++;
}
}
hanoi(2, " ", " ", " ");
document.writeln(" "+ i +"
");
})();
コードの例:
;(function(){
var i = 10;
//
var factorial = function(num){
if (num > 0) {
return num * factorial(num - 1);
} else {
return 1; // 0 1, 1!= 1*0!
}
}
document.writeln(i + " "+ factorial(i));
})();