"Oferta de dedo espada" Pregunta 66: Construcción de una matriz de productos

// Pregunta de la entrevista 66: Crear una matriz de productos
 // Pregunta: Dada una matriz A [0, 1, ..., n-1], cree una matriz B [0, 1, ..., n-1], que
 // El elemento B [i] = A [0] × A [1] ×… × A [i-1] × A [i + 1] ×… × A [n-1] en B. No puedes usar la división. 

#include <cstdio> 
#include <vector> usando el espacio de nombres std;
 // Tome B [i] como [= A [0], A [1],…, A [i-1], 1, A [i + 1],…, A [n-1]]
 // Para B, se convierte en una matriz bidimensional, porque 1 es la matriz triangular superior a la izquierda y la matriz triangular inferior a la derecha
 /// El valor del producto de cada fila de la matriz triangular se puede calcular desde la parte superior Down void BuildProductionArray ( const vector < double > & input, vector < double > & output) 
{ int length1 = input.size ();
     int length2 =

 

    output.size (); 

    if (length1 == length2 && length2> 1 ) 
    { 
        output [ 0 ] = 1 ;
         for ( int i = 1 ; i <length1; ++ i) 
        { 
            output [i] = output [i- . 1 ] * INPUT [I - 1. ]; // calcular cada fila del valor de la multiplicación de matrices triangular izquierda 
        } 

        doble TEMP = 1. ;
         para ( int I = length1 - 2 ; I> = 0 ; Inc. (www.i-levelmedia.com)) // nota dos ciclos i se inicializa con el valor de 
        {
            temp * = input [i + 1 ]; // Calcular el valor del producto de cada fila de la 
            salida de la matriz triangular inferior [i] * = temp; // El valor multiplicado de los pares de los triángulos superior e inferior se multiplica nuevamente, que es B [i] Valorado 
        } 
    } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/ZSY-blog/p/12695113.html
Recomendado
Clasificación