import java.util.Random; class LeggSammen2DArray { private static int riktig = 0; private static int feil = 0; public static void main(String[] args) { testLeggSammen2DArray(); testLeggSammenTomArray(); System.out.println("______________________________________________"); System.out.println(riktig + " riktig -- " + feil + " feil"); } private static void sjekk(long expected, long calculated, String message) { if (calculated == expected) { System.out.println("Riktig! - " + calculated); riktig++; } else { System.out.println("Feil paa " + message +" - Fikk " + calculated + " Forventet " + expected); feil++; } } private static void testLeggSammen2DArray() { int[][] numbers1 = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}}; //120 int[][] numbers2 = {{31, 56, 1, 67, 12, 56, 98}, {31, 56, 1, 67, 12, 56, 98}, {31, 56, 1, 67, 12, 56, 98}}; int[][] numbers3 = new int[50][50]; Random random = new Random(); for (int i = 0; i < numbers3.length; i++) { //rader for (int j = 0; j < numbers3[i].length; j++) { //kolonner numbers3[i][j] = random.nextInt(100); } } int sumNumbers1 = 0; for (int[] rad : numbers1) { for (int i : rad) { sumNumbers1 += i; } } int sumNumbers2 = 0; for (int[] rad : numbers2) { for (int i : rad) { sumNumbers2 += i; } } int sumNumbers3 = 0; for (int[] rad : numbers3) { for (int i : rad) { sumNumbers3 += i; } } sjekk(sumNumbers1, leggSammen2DArray(numbers1), "Test av Numbers1 1 - 15"); sjekk(sumNumbers2, leggSammen2DArray(numbers2), "Test av Numbers2"); sjekk(sumNumbers3, leggSammen2DArray(numbers3), "test av random"); } private static void testLeggSammenTomArray() { //hva med tom array? int[][] numbersTom = new int[0][0]; sjekk(0, leggSammen2DArray(numbersTom), "Test av Tom list"); } public static long leggSammen2DArray(int[][] numbers) { if (numbers == null || numbers.length == 0) { return 0; } return leggSammen2DArray(numbers, numbers.length - 1, numbers[numbers.length - 1].length - 1); } private static long leggSammen2DArray(int[][] numbers, int row, int col){ if (row == 0 && col == 0) { return numbers[row][col]; } else if (numbers[row].length == 0) { return 0; } else if (col == 0) { return numbers[row][col] + leggSammen2DArray(numbers, row - 1, numbers[row -1].length - 1); } else { return numbers[row][col] + leggSammen2DArray(numbers, row, col - 1); } } }