Are you taking CLEP classes? Try clep.ai
| preferred AP College board partner for AP classes
AP Computer Science A/Unit 8: 2D Array
Start Practice TestPractice Test
About Exam
hard

Recursive 2D Array Traversal

Mark
< Prev
Next >

Consider the following code. What is printed when the main method is executed?

public class PerimeterRecursive {
    public static int perimeterSum(int[][] arr, int offset) {
        int rows = arr.length;
        int cols = arr[0].length;
        if (offset >= rows - offset || offset >= cols - offset) return 0;
        if (offset == rows - offset - 1 && offset == cols - offset - 1)
            return arr[offset][offset];
        int sum = 0;
        // Top row of the current layer
        for (int j = offset; j < cols - offset; j++)
            sum += arr[offset][j];
        // Bottom row of the current layer (if distinct)
        if (offset != rows - offset - 1) {
            for (int j = offset; j < cols - offset; j++)
                sum += arr[rows - offset - 1][j];
        }
        // Left and right columns (excluding corners)
        for (int i = offset + 1; i < rows - offset - 1; i++)
            sum += arr[i][offset] + arr[i][cols - offset - 1];
        return sum + perimeterSum(arr, offset + 1);
    }
    public static void main(String[] args) {
        int[][] grid = {
            {1, 2, 3, 4},
            {5, 6, 7, 8},
            {9, 10, 11, 12},
            {13, 14, 15, 16}
        };
        System.out.println(perimeterSum(grid, 0));
    }
}
A

120

B

130

C

144

D

136

Hint
Did You Know?
Explain Why
Explain All Answers
Check Answer
Show Correct Answer
Report Question

Question Leaderboard

Not enough data yet to show leaderboard.

AI Tutor

How can I help?

APFIVE © 2020.
Email: apfive@apfive.org|Privacy Policy|