[Deslizar el banco de preguntas] La espada se refiere a las preguntas de programación Offer_, el poder entero del valor, ajustar el orden de la matriz y cubrir la matriz

1. La potencia entera del valor.

Descripción del Título

Dada una base de coma flotante de tipo double y un exponente entero de tipo int. Calcula la potencia del exponente de la base.

Asegúrese de que la base y el exponente no sean 0 al mismo tiempo

 

1. Operador de energía

function Power(base, exponent)
{
    return base ** exponent;
}

2. Afinación

function Power(base, exponent)
{
    return Math.pow(base, exponent);
}

3. Multiplicación acumulada

function Power(base, exponent)
{
    var result = 1.0;
    if(exponent == 0) return 1;
    else if(exponent > 0){
        for(var i = 0 ; i < exponent;i++){
            result *= base;
        }
    }else {
        for(var i = 0 ; i < (0-exponent);i++){
            result *= base;
        }
        result = 1/result;
    }
    return result;
}

En segundo lugar, ajuste el orden de la matriz para que los números impares estén delante de los números pares.

Descripción del Título

Ingrese una matriz de enteros e implemente una función para ajustar el orden de los números en la matriz de modo que todos los números impares estén en la primera mitad de la matriz, y todos los números pares estén en la segunda mitad de la matriz y el relativo entre impares e impar, par e incluso está garantizado La ubicación permanece sin cambios.

 

Operador de propagación

function reOrderArray(array)
{
    var even = [];  //定义一个存放偶数的数组
    var odd = [];  //定义一个存放奇数的数组

    for (var i = 0; i < array.length; i++) {
      if(array[i] % 2 == 0) even .push(array[i]);
      else odd.push(array[i]);
    }
    return [...odd,...even ]; 
}

Tres, cobertura de matriz

Descripción del Título

Podemos usar 2 * 1 rectángulos pequeños horizontal o verticalmente para cubrir rectángulos más grandes. ¿Cuántas formas hay de cubrir un rectángulo grande de 2 * n con n 2 * 1 rectángulos pequeños sin superponerse?

Idea: secuencia de Fibonacci

método uno:

function rectCover(number)
{
    if(number == 0) return 0;
    if(number == 1) return 1;
    if(number == 2) return 2;
     
    return rectCover(number - 1)+ rectCover(number - 2);
}

Método dos:

function rectCover(number)
{
    var a = [];
    a[0] = 0;
    a[1] = 1;
    a[2] = 2;
    if(number < 3) return a[number];
    for(var i = 3 ; i <= number ; i++){
        a[i] = a[i - 1]+ a[i - 2];
    }
    return a[number];
}

Método tres:

function rectCover(number)
{
    if(number == 0) return 0;
    var a = 0;
    var b = 1;
    while(number-- > 0){
        var t = b;
        b += a;
        a = t;
    }
    return b;
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_42339197/article/details/100183073
Recomendado
Clasificación