MBrendecke icon

MusterAddierer

MBrendecke | PRO | 05/16/20 04:34:08 PM UTC | 0 ⭐ | 1383 👁️ | Never ⏰ | []
Java |

1.52 KB

|

None

|

0 👍

/

0 👎

/*
* Version 1.1
* Datum: 16.05.2020
* Uhrzeit: 21:29
*/
 
package exp.sandbox;
 
public class Main {
    public static void main(String[] args) {
        long sum = getSum(getData(), getMuster(), getDeltas());
        System.out.println(sum);
    }
 
    private static long[][] getData() {
        return new long[][]{
                {1, 1, 1, 1, 1},
                {1, 1, 3, 1, 5, 1},
                {1, 2, 1, 4, 1, 6},
                {1, 1, 1, 1, 1},
                {1, 1, 1}
        };
    }
 
    private static int[][] getMuster() {
        return new int[][]{
                {1, 2},
                {0, 3},
                {0, 3},
                {1, 2}
        };
    }
 
    private static int[][] getDeltas() {
        return new int[][]{
                {0, 0},
                {0, 1},
                {0, 2},
                {1, 0}
        };
    }
 
    private static long getSum(long[][] data, int[][] muster, int dy, int dx) throws IndexOutOfBoundsException {
        long sum = 0;
 
        for (int my = 0; my < muster.length; my++) {
            for (int mx = 0; mx < muster[my].length; mx++) {
                sum += data[my + dy][muster[my][mx] + dx];
            }
        }
 
        return sum;
    }
 
    private static long getSum(long[][] data, int[][] muster, int[][] deltas) throws IndexOutOfBoundsException {
        long sum = 0;
 
        for (var delta : deltas) {
            sum += getSum(data, muster, delta[0], delta[1]);
        }
 
        return sum;
    }
}

Comments