You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#实现数组1与逆序数组2乘积和数组3对应元素相乘的方法

实现代码

你需要在第一次计算乘积的基础上,再和原始array3逆序后的结果做二次对位相乘即可,注意要提前保存原始array3的逆序结果,避免后续赋值操作覆盖原始值导致计算错误。

计算逻辑验证(匹配你的示例)

  • 逆序array2得到[17,16,15,14,12],和array1对位相乘得到中间数组[17,32,45,56,60]
  • 逆序原始array3得到[1,2,7,4,8],和中间数组对位相乘得到最终结果[17,64,315,224,480]

完整可运行代码

int[] array1 = {1, 2, 3, 4, 5};
Console.Write("\nArray 1: ");
Console.WriteLine(String.Join(", ", array1));

int[] array2 = {12, 14, 15, 16, 17};
Console.Write("Array 2: ");
Console.WriteLine(String.Join(", ", array2));

int[] array3 = {8, 4, 7, 2, 1};
Console.Write("原始Array 3: ");
Console.WriteLine(String.Join(", ", array3));

// 预存原始array3的逆序结果
var reversedArray3 = array3.Reverse().ToArray();

// 两次对位相乘计算最终array3
array3 = array2.Reverse()
               .Zip(array1, (a2Rev, a1) => a2Rev * a1)
               .Zip(reversedArray3, (midValue, a3Rev) => midValue * a3Rev)
               .ToArray();

Console.Write("\nArray1与逆序Array2的中间乘积: ");
Console.WriteLine(string.Join(", ", array2.Reverse().Zip(array1, (x, y) => x * y)));

Console.Write("最终Array3输出: ");
Console.WriteLine(string.Join(", ", array3));

Console.Read();

内容的提问来源于stack exchange,提问作者hahahahahaha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:39:02