File tree Expand file tree Collapse file tree 2 files changed +36
-6
lines changed
algorithm-exercises-java/src
main/java/ae/projecteuler
test/java/ae/projecteuler Expand file tree Collapse file tree 2 files changed +36
-6
lines changed Original file line number Diff line number Diff line change @@ -15,27 +15,39 @@ private Problem0015() {}
15
15
* Problem 0015.
16
16
*/
17
17
public static Long problem0015 (Integer gridSide ) {
18
+ int limit ;
18
19
19
- Long [][] grid = new Long [gridSide + 1 ][gridSide + 1 ];
20
+ if (gridSide <= 0 ) {
21
+ limit = 0 ;
22
+ } else {
23
+ limit = gridSide + 1 ;
24
+ }
25
+
26
+ Long [][] grid = new Long [limit ][limit ];
20
27
21
28
// initialization
22
- for (int i = 0 ; i <= gridSide ; i ++) {
23
- for (int j = 0 ; j <= gridSide ; j ++) {
29
+ for (int i = 0 ; i < limit ; i ++) {
30
+ for (int j = 0 ; j < limit ; j ++) {
24
31
grid [i ][j ] = 1L ;
25
32
}
26
33
}
27
34
28
35
// vertex computing
29
- for (int i = 1 ; i <= gridSide ; i ++) {
30
- for (int j = 1 ; j <= gridSide ; j ++) {
36
+ for (int i = 1 ; i < limit ; i ++) {
37
+ for (int j = 1 ; j < limit ; j ++) {
31
38
long upperParent = grid [i - 1 ][j ];
32
39
long leftParent = grid [i ][j - 1 ];
33
40
34
41
grid [i ][j ] = upperParent + leftParent ;
35
42
}
36
43
}
37
44
38
- Long result = grid [gridSide ][gridSide ];
45
+ Long result ;
46
+ if (grid .length > 0 ) {
47
+ result = grid [grid .length - 1 ][grid .length - 1 ];
48
+ } else {
49
+ result = 0L ;
50
+ }
39
51
40
52
String log ;
41
53
log = String .format ("Problem 00015 solved: %d" , result );
Original file line number Diff line number Diff line change @@ -16,4 +16,22 @@ class Problem0015Test {
16
16
String .format ("Problem 0015 answer must be: %d" , answer )
17
17
);
18
18
}
19
+
20
+ @ Test void problem0015edgeCase () {
21
+
22
+ Integer input = 0 ;
23
+ Long answer = 0L ;
24
+ Long solutionFound = Problem0015 .problem0015 (input );
25
+
26
+ assertEquals (answer , solutionFound ,
27
+ String .format ("Problem 0015 answer must be: %d" , answer )
28
+ );
29
+
30
+ input = -1 ;
31
+ answer = 0L ;
32
+ solutionFound = Problem0015 .problem0015 (input );
33
+ assertEquals (answer , solutionFound ,
34
+ String .format ("Problem 0015 answer must be: %d" , answer )
35
+ );
36
+ }
19
37
}
You can’t perform that action at this time.
0 commit comments