JS- cepillo título de registro demostrar la seguridad (y bucle recursivo)

1. número de Fibonacci

Todos sabemos que el número de Fibonacci, y ahora le pide que introduzca un entero n, que la salida del enésimo número de Fibonacci secuencia de Fibonacci del elemento (de 0, el primer 0 es 0). n <= 39

mi solución

Recursividad, en vscode correr un poco no es ningún problema, pero en el ganado fuera de Internet en la carrera demasiado tiempo. El funcionamiento es demasiado grande desbordamiento, pila.

function Fibonacci(n)
{
    if(n == 0) return 0
    if(n == 1) return 1
    if(n>=2&&n<=39){
        let x = Fibonacci(n-1)
        let y = Fibonacci(n-2)
        return x+y
    }
    return null
}

otros análisis

Solución a un problema que se menciona en muchos sentidos, programación dinámica, curry, la recursión de cola.
Programación Dinámica
artículo fuerza desgaste, escrito con mucha claridad
https://leetcode-cn.com/problems/fibonacci-number/solution/dong-tai-gui-hua-tao-lu-xiang-jie-by-labuladong/

function Fibonacci(n)
{
    if(n == 0) return 0
    if(n == 1) return 1
    let pre = 0
    let cur = 1
    for(let i=2;i<=n;i++){
        let sum = pre + cur
        pre = cur
        cur = sum
    }
    return cur
}

2. Las escaleras de salto

Una rana puede saltar en un nivel de 1 clase, también puede saltar en el nivel 2. La rana saltó en busca de un total de nivel de grado n el número de saltos (el orden de cálculo diferentes resultados diferentes).

mi solución

De hecho, lo anterior es que la pregunta, esta pregunta es una buena solución.
N = saltó saltó escaleras escaleras n-1 + saltar un salto en n-2 para saltar dos escaleras
Esto no es una variante de columnas de Fibonacci Pues bien, el uso de programación dinámica se pueden escribir, Por supuesto, también puede recursivas

function jumpFloor(number)
{
    if(number == 1) return 1
    if(number == 2) return 2
    let pre = 1
    let cur = 2
    for(let i=3;i<=number;i++){
        let sum = pre+cur
        pre = cur
        cur = sum
    }
    return cur
}

3. escaleras salto metamorfosis

Una rana puede saltar en un nivel de 1 clase, también puede saltar en el nivel 2 ...... n También puede saltar al escenario. La rana saltó en busca de un total de n del nivel de grado el número de saltos.

mi solución

Rana agotado. Esta pregunta no es como problemas de algoritmos, como un problema de matemáticas.
Saltar n etapas f (n) = f (n -1) + f (n-2) + ... + f (1)
etapa de salto n-1 f (n-1) = f (n-2) + f (n-3) + ... + f (1)
la resta de fase f (n) = 2f (n -1)

function jumpFloorII(number)
{
    if(number == 1) return 1
    let i = 1
    while(--number){//注意这里是--number
        i*=2
    }
    return i
}

suplemento

--aEs de tipo pre-decremento, el valor de retorno después de decremento
a--es el tipo de decremento posterior, devuelve el valor antes de decremento

  var a = 3
  var c = a--
  console.log(a);  //2
  console.log(c);  //3
  

  var b = 3
  var d = --b
  console.log(b);  //2
  console.log(d);  //2

Por lo tanto, mientras que el número de código se ha descrito anteriormente se determina después el valor de decremento, como el número de ciclos n 1-veces, si el número- escrito, el bucle n veces es

4. huella rectangular

Podemos utilizar 2 pequeño rectángulo 1 de los lados o verticalmente para cubrir un rectángulo más grande. ¿El uso de n2 pequeña cobertura rectángulo 1 sin solapamiento un gran rectángulo 2 * n, un total de cuántas maneras?
Por ejemplo, cuando n = 3, 2 * 3 baldosa está cubierta hay tres métodosAquí Insertar imagen Descripción

mi solución

Esta pregunta, naturalmente, puede pensar que 2 n-rectángulo es 2 (n - 1) más un rectángulo, sin duda, un poco como un número de Fibonacci, a continuación, que se resume dibujo. Puede ser derivada f (n) = f (n -1) + f (n-2), por supuesto, considerar el caso donde n es 1 y 2

function rectCover(number)
{
    if(number == 0) return 0
    if(number == 1) return 1
    if(number == 2) return 2
    let pre = 1
    let cur = 2
    for (let i=3;i<=number;i++){
        let sum = pre+cur
         pre = cur
         cur = sum
    }
    return cur
}
Publicado 21 artículos originales · ganado elogios 0 · Vistas 179

Supongo que te gusta

Origin blog.csdn.net/adrenalineiszzz/article/details/104826122
Recomendado
Clasificación