将数组中的元素相乘

时间:2012-01-09 11:09:51

标签: c# arrays

嗨,我有一个数组:int [] num = new int[6]{1,2,2,1,1,2};

我想将元素0的值与其他每个值相乘,然后我想将元素1的值乘以元素2到最后一个元素的值。然后将元素2的值乘以从3到结束的值,依此类推,直到我遍历整个数组。

到目前为止,我的努力看起来笨拙和冗长,所以我想知道是否有人能够向我展示实现目标的优雅方式。

非常感谢。

4 个答案:

答案 0 :(得分:8)

您可以向后浏览数组并一次完成,而不是重复操作。

 for (int i = num.Length - 2; i >= 0; i--)
 {
     num[i] *= num[i + 1];
 }

提供8,8,4,2,2,2

答案 1 :(得分:2)

Enumerable.Range(0,num.Length)
    .Select(i => num.Skip(i).Aggregate(1, (a, b) => a * b))

给出序列8,8,4,2,2,2。这是你的意思吗?

答案 2 :(得分:1)

这应该做的工作:

for (int i = 0; i < num.Length; i++)
{
    // Multiply element i
    for (int j = i+1; j < num.Length; j++)
    {
       num[i] *= num[j];
    }
}

答案 3 :(得分:0)

int [] num = new int [6] {1,2,2,1,1,2};

        int i = 0;

        while (i < num.Length)

        {
            for (int j = i; j < num.Length;j++)

            {

                if((j+1)<num.Length)

                num[i] = num[i] + num[j + 1];

            }

            Console.WriteLine(num[i]);

            i++;

        }