「ソードフィンガーオファー」の質問66:製品配列の作成

// インタビューの質問66:製品の配列の作成
 // 質問:配列A [0、1、…、n-1]が与えられた場合、配列B [0、1、…、n-1]を作成してください
 // 要素B [i] = A [0]×A [1]×…×A [i-1]×A [i + 1]×…×A [n-1] in B. 除算は使用できません。

#include <cstdio> 
#include <vector> using namespace std;
 // B [i] as [= A [0]、A [1]、…、A [i-1]、1、A [i + 1]、…、A [n-1]]
 // Bの場合、2次元配列になります。1は左側の上三角行列、右側は下三角行列です
 /// 三角行列の各行積の値は上から計算できます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 ;
         forint i = 1 ; i <length1; ++ i)
        { 
            output [i] = output [i- 1 ] * INPUT [I - 1 ]; // 左三角行列乗算値の各行を計算
        } 

        ダブル TEMP = 1 ;
         のためのINT I =長さ1 - 2 ; I> = 0 ;株式会社(www.i-levelmedia.com))// 注2初期化値
         {
            temp * = input [i + 1 ]; // 下三角行列 
            出力の各行の積の値を計算します[i] * = temp; // 上三角と下三角のピア
乗算値、つまりB [i]大切な        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/ZSY-blog/p/12695113.html