Recursion

2018-12-27  本文已影响0人  Oriharas
  1. Fibonacci
function Fibonacci(n) {
    if (n <= 0) {
        return 0
    } else if (n === 1) {
        return 1
    } else {
        return Fibonacci(n - 1) + Fibonacci(n - 2)
    }
}
  1. A frog can jump one or two steps at a time. How many jumping methods are there when the frog jumps up an n-step? (Different order corresponds to different results)
function jumpFloor(number) {
    if (number <= 0) {
        return 0
    } else if (number === 1) {
        return 1
    } else if (number === 2) {
        return 2
    } else {
        return jumpFloor(number - 1) + jumpFloor(number - 2)
    }
}
  1. A frog can jump up a step or two at a time... It can also jump to level n at a time. Find out how many jumping methods the frog can use to jump up an n-step.
function jumpFloorII(number) {
    if (number <= 0) {
        return 0
    } else if (number === 1) {
        return 1
    } else {
        return 2 * jumpFloorII(number - 1)
    }
}
  1. We can use a small rectangle of 2 * 1 to cover larger rectangles horizontally or vertically. How many ways are there to cover a large 2 * n rectangle with n small 2 * 1 rectangles without overlapping?
function rectCover(number) {
    if (number <= 0) {
        return 0
    } else if (number === 1) {
        return 1
    } else if (number === 2) {
        return 2
    } else {
        return rectCover(number - 1) + rectCover(number - 2)
    }
}
上一篇下一篇

猜你喜欢

热点阅读