我一直在尝试循环这些,但我不明白,我必须放在哪里循环?
public static void Run(int n) {
int l;
int c;
for (l = 1; l <= 2 * n - 1; l++) {
System.out.println("\n");
for (c = 1; c <= 2 * n - 1; c++) {
if ((l == 1) || (l == 2 * n - 1) || (c == 1) || (c == 2 * n - 1)) {
System.out.print('a');
} else if ((l == 2) || (l == 2 * n - 2) || (c == 2) || (c == 2 * n - 2)) {
System.out.print(defLettre(n, 1));
} else if ((l == 3) || (l == 2 * n - 3) || (c == 3) || (c == 2 * n - 3)) {
System.out.print(defLettre(n, 2));
} else if ((l == 4) || (l == 2 * n - 4) || (c == 4) || (c == 2 * n - 4)) {
System.out.print(defLettre(n, 3));
} else if ((l == 5) || (l == 2 * n - 5) || (c == 5) || (c == 2 * n - 5)) {
System.out.print(defLettre(n, 4));
} else {
System.out.print(" ");
}
}
}
}
}
问题是,如果我必须输入,并且不了解如何使它们重新组合,则n越大.
编辑:
感谢您的回答.我想做的程序是这样的:
http://pastebin.com/dKBGjVqj(无法在此处正确粘贴).
我能够做到这一点,只是它令人困惑,因为如果n等于10,则我必须输入10 if..else.
顺便说一句,我的程序需要在1ghz的计算机上以1秒的速度运行,并且必须在8000 Ko以下.我如何看待1s以下的跑步?我想.java大小就是这个大小.
解决方法:
您应该解释您要执行的操作的逻辑,但是从代码来看,请将以下代码段放入第二个循环(伪代码)中
if(l==c||l+c==2*n)
{
int value=min(l,c);
if(value==1)print("a");
else print(defLettre(n,value-1));
}