- 階乗の計算:
function factorial(n) {
if (n === 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5)); // 結果: 120
この例では、再帰関数 factorial
を使用して、与えられた数の階乗を計算しています。関数内で自身を呼び出すことによって、数値を繰り返し減らしながら計算を行っています。
- フィボナッチ数列の生成:
function fibonacci(n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log(fibonacci(7)); // 結果: 13
この例では、再帰関数 fibonacci
を使用して、指定された位置のフィボナッチ数を生成しています。関数内で自身を呼び出すことによって、前の2つのフィボナッチ数を合計して次の数を計算しています。
- ツリーのトラバーサル:
function traverse(node) {
console.log(node.value);
if (node.left) {
traverse(node.left);
}
if (node.right) {
traverse(node.right);
}
}
// 仮想的なツリーの作成
var tree = {
value: 1,
left: {
value: 2,
left: {
value: 4,
left: null,
right: null
},
right: {
value: 5,
left: null,
right: null
}
},
right: {
value: 3,
left: {
value: 6,
left: null,
right: null
},
right: null
}
};
traverse(tree);
この例では、再帰関数 traverse
を使用して、ツリーのノードを深さ優先でトラバースしています。ノードの値を表示した後、左の子ノードと右の子ノードが存在する場合に再帰的にトラバースを行っています。