// インタビューの質問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 ; for(int 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]大切な } } }