public class Hw2 {
public static void main(String[] args) {
int n; //Is the grid size.
int [][] spiralPrime = createSpiralPrime(n); //Matrix of spiral prime numbers.
n=Integer.parseInt(args[0]);
spiralPrime = createSpiralPrime(n);
largestSumOfPrime(spiralPrime,n);
for ( i=0;i<n;i++)
for ( j=0;j<n;j++){
System.out.print(" "+spiralPrime[j]);
if (j==n-1)
System.out.print("\n");
}
} //End of main.
/******************************************************************************
This method retrun array of spiral prime number of size NxN.
****************************************************************************/
static int[][] createSpiralPrime (int n) {
int [][] spiralPrime = new int[n][n];
int i=n/2;
int j=n/2;
int k=2;
int r;
int t=1;
int w=1;
char s='+';
spiralPrime[j]=1;
while (w<=n) {
switch (s) {
case '+' : {
for (r=1;r<=t;r++) {
j++;
spiralPrime[j]=k;
k++;
}
if (w!=n) {
for (r=1;r<=t;r++) {
i--;
spiralPrime[j]=k;
k++;
}
}
s='-';
t++;
w++;
}
case '-' : {
for (r=1;r<=t;r++) {
j--;
spiralPrime[j]=k;
k++;
}
for (r=1;r<=t;r++) {
if (k<=n*n) {
i++;
spiralPrime[j]=k;
k++;
}
}
s='+';
t++;
w++;
}
} //End of switch.
} //End of while.
return spiralPrime;
} //End of method.لمن اسوي compile للكود compiler يقول انا ترجمته صحيحه لكن عنده وقت التنفيذ يقولي في خطأ بصراحه ماعرفت وين مكانه ممكن احد يساعدني ويصلحلي الخطأ بالكود هذي الرساله تظهر لي عندنا انقذ البرنامج تقولي عن مكان الخطأ فاتمنى مساعده :
exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at Hw2.java .main at Hw2.java.createSpiralPrime