// 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 } } }