w3resource

PHP Exercises: Compute the maximum value of the sum of the passing integers

PHP: Exercise-76 with Solution

Your task is to develop a small part of spreadsheet software.
Write a PHP program which adds up columns and rows of given table as shown in the following figure:

Pictorial Presentation:

PHP: Compute the maximum value of the sum of the passing integers.

Input: n (the size of row and column of the given table)
1st row of the table
2nd row of the table
:
:
n th row of the table
The input ends with a line consisting of a single 0.

Sample Output:
The maximum value of the sum of integers passing according to the rule on one line.

Sample Solution:

PHP Code:

<?php
// Continuous loop to read input lines until '0' is entered
while (($line = trim(fgets(STDIN))) !== '0') {
    // Convert the input line to an integer representing the size of the square matrix
    $n = (int)$line;

    // Create a 2D array (matrix) filled with zeros, with dimensions ($n + 1) x ($n + 1)
    $arr = array_fill(0, $n + 1, array_fill(0, $n + 1, 0));

    // Loop through each row of the matrix to populate values and calculate row and column sums
    for ($i = 0; $i < $n; $i++) {
        // Read a line from standard input and trim leading/trailing whitespaces
        $line = trim(fgets(STDIN));

        // Iterate through the elements of the current row
        foreach (explode(' ', $line) as $j => $m) {
            // Convert the element to an integer
            $m = (int)$m;

            // Assign the value to the matrix and update row and column sums
            $arr[$i][$j] = $m;
            $arr[$i][$n] += $m;  // Update row sum
            $arr[$n][$j] += $m;  // Update column sum
        }
    }

    // Calculate and assign the sum of all values in the last row and last column
    $arr[$n][$n] = array_sum($arr[$n]);

    // Display a message indicating the table with the sum of rows and columns
    echo "The table with sum of rows and columns:\n";
    
    // Loop through each row and column to print the matrix
    for ($i = 0; $i <= $n; $i++) {
        for ($j = 0; $j <= $n; $j++) {
            // Format and print each matrix element
            printf('%5d', $arr[$i][$j]);
        }
        // Move to the next line after printing a row
        echo PHP_EOL;
    }
}
?>

Sample Input:
4
25 69 51 26
68 35 29 54
54 57 45 63
61 68 47 59
0

Sample Output:

The table with sum of rows and columns:
   25   69   51   26  171
   68   35   29   54  186
   54   57   45   63  219
   61   68   47   59  235
  208  229  172  202  811

Flowchart:

Flowchart: Compute the maximum value of the sum of the passing integers.

PHP Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a PHP program that compute the maximum value of the sum of the passing integers.
Next: Write a PHP program which reads a list of pairs of a word and a page number, and prints the word and a list of the corresponding page numbers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.