How to calculate the products of (jagged) uneven-sized matrix columns in C#

1 Answer

0 votes
using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static int[] ColumnProducts(int[][] matrix)
    {
        // Determine the maximum number of columns
        int maxCols = matrix.Max(row => row.Length);

        var products = new List<int>();

        for (int col = 0; col < maxCols; col++) {
            // Collect values that exist in this column
            var colValues = matrix
                .Where(row => col < row.Length)
                .Select(row => row[col]);

            // Multiply them together
            int product = colValues.Aggregate(1, (acc, v) => acc * v);
            products.Add(product);
        }

        return products.ToArray();
    }

    static void Main()
    {
        int[][] matrix =
        {
            new[] { 1, 2, 3 },
            new[] { 4, 5 },
            new[] { 6, 7, 8, 9 }
        };

        int[] result = ColumnProducts(matrix);

        Console.WriteLine("Column products: " + string.Join(", ", result));
    }
}



/*
run:

Column products: 24, 70, 24, 9

*/

 



answered Feb 12 by avibootz
...