gpt4 book ai didi

c++ - C++中的数组乘法

转载 作者:行者123 更新时间:2023-11-30 02:54:59 25 4
gpt4 key购买 nike

这是作业。

我正在尝试使用以下公式将 ab 数组相乘:

c[0]=a[0]*b[0]+a[0]*b[1]+a[0]*b[2]+....a[0]*b[n-1]

c[1]=a[1]*b[1]+a[1]*b[2]+a[1]*b[3]+....a[1]*b[n-1]

等等……

但是这段代码似乎只跑遍了a数组,而没有跑遍b数组。我得到的结果是这样的:

6
12
18
9
6
15

如有任何指点,我们将不胜感激。

我的代码-

#include <iostream>

using namespace std;
const int n=6;
int main()
{

int a[n]= {2,4,6,3,2,5};
int b[n]= {3,2,1,4,2,3};
int c[n];

for (int h=0; h<n; h++)
{
for (int g=0; g<n; g++)
{
c[h] = a[h]*b[g];
}
}

for (int i=0; i<n; i++)
{
cout << c[i] << endl;
}
}

最佳答案

您可以通过使 A[i] 成为公因数来简化问题

所以你得到

c[0]  =a[0]  *(b[0]+b[1]+b[2]+...+b[n-1])
c[1] =a[1] *(b[1]+b[2]+...+b[n-1])
c[n-1]=a[n-1]*(b[n-1])

所以 O(n) 的解决方案是:

int sumB = 0;        
for (int i=n-1; i >= 0; --i){
sumB += b[i];
c[i] = a[i] * sumB;
}

关于c++ - C++中的数组乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com