我想在java中打印模式,如:
模式1:
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
模式2:
1
3 2
4 5 6
10 9 8 7
11 12 13 14 15
21 20 19 18 17 16
但是我没有得到它,并且非常感谢对算法的任何帮助。提前谢谢,当然感谢stackoverflow。
答案 0 :(得分:1)
你在这里。这是您的第一个模式的程序: -
public class PrintPattern1 {
public static void main(String[] args) {
int i=0;
int j=0;
int k=0;
int l=4;
for(i=1;i<6;i++){
System.out.println();
k=i;
l=4;
for(j=1;j<=i;j++){
System.out.print(" "+k);
k=k+l;
l=l-1;
}
}
System.out.println();
}
}
这是第二种模式的程序: -
public class PrintPattern2 {
public static void main(String[] args) {
int i=0;
int j=0;
int k=0;
int l=1;
for(i=1;i<7;i++){
System.out.println();
if(i%2==0){
k=l+i-1;
for(j=1;j<=i;j++){
System.out.print(" "+k);
k=k-1;
l=l+1;
}
}else{
k=l;
for(j=1;j<=i;j++){
System.out.print(" "+k);
k=k+1;
l=l+1;
}
}
}
System.out.println();
}
}
不要忘记点击左上角的右边标记来接受我的回答。快乐编码:)
答案 1 :(得分:0)
第一个模式似乎有一个固定的长度。第二个可以无限期地继续下去。此代码生成它们:
int lineCount = 5;
for (int i = 1; i <= lineCount; ++i) { //
int n = i;
for (int j = 1; j <= i; ++j) {
System.out.print(n + " ");
n += (lineCount - j);
}
System.out.println();
}
boolean direction = true; //true for increasing order
int lineLength = 1;
int currentStartingPoint = 1;
while(true) {
if(direction) {
for (int i = 0; i < lineLength; ++i) {
System.out.print(currentStartingPoint + i + " ");
}
currentStartingPoint += lineLength++;
}
else {
for (int i = currentStartingPoint + lineLength - 1; i >= currentStartingPoint; --i) {
System.out.print(i + " ");
}
currentStartingPoint += lineLength++;
}
direction = !direction;
System.out.println();
}