gpt4 book ai didi

c++ - 元素乘法——每三个元素

转载 作者:行者123 更新时间:2023-11-28 03:13:53 24 4
gpt4 key购买 nike

我有一个包含数百个(复数)元素的数组。我需要一种方法将每三个元素相乘并添加到下一批倍数。最有效的方法是什么?

例如;

(myArr[0]*myArr[1]*myArr[2])+(myArr[3]*myArr[4]*myArr[5]*)+(myArr[6]*...myArr[n])

也许这可以很容易地完成,但我遗漏了一些东西。提前致谢

最佳答案

假设数组的大小是3的倍数...此代码有效...

long long int Ans=0;
for(int i=0;i<size; i+=3)
{
Ans += (arr[i]*arr[i+1]*arr[i+2]);
}

如果你对乘法的数量非常认真......这可能会有帮助..

long long int Ans=0;
for(int i=0;i<size; i+=3)
{
if(arr[i] && arr[i+1] && arr[i+2])//check if anyone of them is zero..
Ans += (arr[i]*arr[i+1]*arr[i+2]);
}

如果大小不是3的倍数,则在末尾附加几个元素使其成为3的倍数,并用1初始化它们(或 0 取决于您的规范..) 并使用与上述相同的方法。

编辑:

您需要将此代码段添加到 for 循环之上。

while(size%3!=0)
{
arr[size++] = 0; //or 1
}

关于c++ - 元素乘法——每三个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17570600/

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