What is Wrong with My Program
Can You Tell Me What is Wrong with my program. And hopefully fix what is
wrong with it. This is for Project Euler Question 11.
The problem is Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: -4 at
ProjectEuler11.main(ProjectEuler11.java:37)
Here is the link: http://projecteuler.net/problem=11.
public class ProjectEuler11{
public static void main(String []args){
String digitNumber = "08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12
50 77 91 08 49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62
00 81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65 52 70
95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91 22 31 16 71 51
67 63 89 41 92 36 54 22 40 40 28 66 33 13 80 24 47 32 60 99 03 45 02
44 75 33 53 78 36 84 20 35 17 12 50 32 98 81 28 64 23 67 10 26 38 40
67 59 54 70 66 18 38 64 70 67 26 20 68 02 62 12 20 95 63 94 39 63 08
40 91 66 49 94 21 24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34
89 63 72 21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92 16 39 05
42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57 86 56 00 48 35 71
89 07 05 44 44 37 44 60 21 58 51 54 17 58 19 80 81 68 05 94 47 69 28
73 92 13 86 52 17 77 04 89 55 40 04 52 08 83 97 35 99 16 07 97 57 32
16 26 26 79 33 27 98 66 88 36 68 87 57 62 20 72 03 46 33 67 46 55 12
32 63 93 53 69 04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62
76 36 20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16 20
73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54 01 70 54 71
83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48";
String []numberVector = digitNumber.split(" ");
int [][]digitNumberVector = new int[19][19];
int x = 0;
int y = 0;
int answerNumber = 0;
int answerReplacementer = 0;
int answerReplacementer2 = 0;
int answerReplacementer3 = 0;
int answerReplacementer4 = 0;
int collection = 0;;
for(int parameter2 = 0; parameter2 < 19; parameter2++){
for(int parameter3 = 0; parameter3 < 19; parameter3++){
for(String parameter : numberVector){
x = parameter2;
y = parameter3;
digitNumberVector[y][x] = Integer.parseInt(parameter);
//Horizontal Checker
answerNumber = digitNumberVector[y][x] *
digitNumberVector[y][x + 1] * digitNumberVector[y][x + 2]
* digitNumberVector[y][x + 3] * digitNumberVector[y][x +
4];
//Verticle Checker
answerReplacementer = digitNumberVector[y][x] *
digitNumberVector[y + 1][x] * digitNumberVector[y + 2][x]
* digitNumberVector[y + 3][x] * digitNumberVector[y +
4][x];
//Bottom to top Checker
answerReplacementer2 = digitNumberVector[y][x] *
digitNumberVector[y + 4][x + 4] * digitNumberVector[y +
1][x + 1] * digitNumberVector[y + 2][x + 2] *
digitNumberVector[y + 3][x + 3];
//Top to bottom checker
answerReplacementer2 = digitNumberVector[y][x] *
digitNumberVector[y - 4][x - 4] * digitNumberVector[y -
1][x - 1] * digitNumberVector[y - 2][x - 2] *
digitNumberVector[y - 3][x - 3];
if(answerNumber < answerReplacementer){
if(answerReplacementer < answerReplacementer2){
if(answerReplacementer2 < answerReplacementer3){
collection = answerReplacementer3;
System.out.println(collection);
}
else{
collection = answerReplacementer2;
System.out.println(collection);
}
}
else{
collection = answerReplacementer;
System.out.println(collection);
}
}
else{
collection = answerNumber;
System.out.println(collection);
}
}
}
}
}
}// Java Document
No comments:
Post a Comment