import java.io.*;
public class Magic{
static final int maxsize = 50;
public static void main (String [] args) throws IOException{
int i, j, k, l, n, key;
boolean n_ok;
String line;
int [] [] square = new int [maxsize] [maxsize];
BufferedReader KeybIn = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print("Size of square? ");
line = KeybIn.readLine();
n = Integer.parseInt(line);
n_ok = (1<=n) & (n<=maxsize+1) & (n%2==1);
if (n_ok){
for (i=0;i<n;i++)
for (j=0;j<n;j++) square[i][j] = 0;
square[0][(int)(n-1)/2] = 1;
key = 2;
i = 0;
j = (int)(n-1)/2;
while (key <= n*n){
k = i - 1;
if (k < 0) k = k + n;
l = j - 1;
if (l < 0) l = l + n;
if (square[k][l] != 0) i = (i+1) % n;
else { i = k; j = l; }
square[i][j] = key;
key = key + 1;
}
System.out.println("Magic square of size " + n);
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
System.out.print("\t"+square[i][j]);
System.out.println();
}
}
}catch (NumberFormatException e){
System.out.println("Error in number, try again.");
}
}
}
그럼 어떻게 다시 시도 하시겠습니까? 그냥 그때 .. 만약 내가 y를 입력하면 사용자에게 사각형의 크기를 다시 물어볼 것입니다. 문자 n이 나오면 빠져 나올 것입니다. 이것은 마법의 사각형을위한 것입니다.루프에서 코드를 실행하고 사용자에게 "다시 시도 하시겠습니까?"라고 묻습니다.
while while 루프를 사용할 수 있습니다. – Ankur
Welcome to Stack Overflow! 이것은 포럼이 아닙니다. __이 질문과 답변 사이트이며, 귀하의 게시물은 정말로 질문이 아닙니다. [실제 질문에는 답변이 있지만 항목이나 아이디어 나 의견은 없습니다] (http://blog.stackoverflow.com/2011/01). /real-questions-have-answers/).__ [자세한 내용은 FAQ를 읽어보십시오.] –
나는 동의에 동의하지 않는다. 나는 이것이 진정한 질문이라고 생각하며 진정한 대답을 가지고있다. –