Recursion

  • Fibonacci
function f(n) {
    if (n == 1) {
        return 1
    } else if (n == 2) {
        return 1
    } else {
        return f(n - 1) + f(n - 2)
    }
}

for (let i = 1; i <= 10; i++) {
    console.log(f(i))
}
  • Find the maximum value among array elements
function getMax(arr, n) {
    if (n == 0) {
        return arr[0]
    } else {
        let max = getMax(arr, n - 1)
        if (arr[n] > max) {
            max = arr[n]
        }
        return max
    }
}

let arr = [1, 3, 7, 4, 5, 2, 9, 6]
console.log(getMax(arr, arr.length - 1))
  • Bubble sort
function bubble(arr, l, r) {
    if (r > l) {
        for (let i = l; i <= r; i++) {
            if (arr[i] > arr[i + 1]) {
                let temp = arr[i]
                arr[i] = arr[i + 1]
                arr[i + 1] = temp
            }
        }

        bubble(arr, l, r - 1)
    }
}

let arr = [1, 8, 3, 7, 4, 5, 2, 9, 6]
bubble(arr, 0, arr.length - 1)
console.log(arr)
  • gcd
function gcd(a, b) {
    if ((a % b) === 0) {
        return b
    } else {
        let c = a % b
        return gcd(b, c)
    }
}

console.log(gcd(125, 75))
  • Hanoi
function hanoi(n, a, b, c) {
    if (n === 1) {
        console.log(a, "->", c)
    } else {
        hanoi(n - 1, a, c, b)
        console.log(a, "->", c)
        hanoi(n - 1, b, a, c)
    }
}

hanoi(3, "A", "B", "C")

你可能感兴趣的:(Recursion)