我正在研究一个项目,我需要创建一个方法,其中参数是非空的double[]
,其中至少有3个元素。
结果需要新数组的第一个和最后一个元素分别等于参数数组的前两个和最后两个元素的平均值,并且对于新数组的其他元素,索引为i
的元素等于参数数组中索引为i-1
,i
和i+1
的元素的平均值。
我还需要确保数组参数没有改变。
这方面的一个例子是调用smoothArray([0.0, 0.2, 0.7, 0.2])
应该返回一个新的数组[0.1, 0.3, 0.3666...,0.45]
。您可能会看到基于双精度数表示误差的数值差异。
我完全不知道该怎么做,希望你能帮助我。
你可以将你的逻辑与下面给出的c++代码联系起来:
double newarr[len];
newarr[0] = (arr[0] + arr[1]) / 2;
newarr[len - 1] = (arr[len-1] + arr[len-2]) / 2;
for (int i = 1; i < len - 1; i++)
{
newarr[i] = (arr[i - 1] + arr[i] + arr[i + 1]) / 3;
}