给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。

// test14.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include<iostream>
#include<string>
#include<cctype>
#include <vector>
#include<exception>
#include <initializer_list>
using namespace std;

class Solution {
public:
	vector<int> multiply(const vector<int>& A) {
	
		vector<int> B;
		int mult=1;

		for (size_t i = 0; i < A.size(); i++)
		{
			for (size_t j = 0; j < A.size(); j++)
			{
				if (i != j)
					mult *= A[j];
			}
			B.push_back(mult);
			mult = 1;
		}
		return B;
	}
};

int main()
{
	
	Solution so;
//	vector<int> A = { 1,2,3,4,5,6,7,8,9,10 };
	vector<int> A = { 0,1,1,1,1,1,1,1,1,1 };
	auto B= so.multiply(A);
	for (size_t i = 0; i < A.size(); i++)
		cout << B[i] << "  ";
	cout << endl;
	return 0;
}
原文地址:https://www.cnblogs.com/wdan2016/p/5938798.html