#
# # #
# # # # #
# # #
#
我用以下代码构建了上半部分
public void printPattern(int row) {
int k=0;
for(int i=1; i<=row; i++) {
for(int j=1; j<=(row*2)-1; j++) {
if(j<=i+k) {
System.out.print("#");
}
else {
System.out.print(" ");
}
}
k++;
System.out.println();
}
但是我不知道如何仅使用2个for循环来构造下半部分
答案 0 :(得分:0)
在代码下方创建2个for循环:
int k=0;//initilize k with 0 again
for(int i=1; i<=row; i++) {
for(int j=(row*2)-3; j>0;j--) {
if(j>=i+k) {
System.out.print("#");
}
else {
System.out.print(" ");
}
}
k++;
System.out.println();}
答案 1 :(得分:0)
因此对于6行模式,您的代码会打印出来:
#
##
###
####
#####
######
一旦达到一半,您就没有任何东西可以开始减少“#”。此类作业会尝试教您基本的String
操作和循环。
基本上,您需要做的是在行的一半后面附加“#”,然后删除其余部分的“#”,如下所示……
public void printPattern(int row) {
String output = "#";
for(int i = 1; i <= (row / 2) - 1; i++) {
System.out.println(output);
output += " #";
}
for(int i = 1; i <= (row / 2); i++) {
System.out.println(output);
output = output.substring(0, output.lastIndexOf("#")).trim();
}
}
答案 2 :(得分:0)
您可以在两个for循环中编写完整的代码,就像
public void printPattern(int row) {
int j = 0;
for (int i = 1; i <= row; i++) {
boolean isFirstHalf = (i <= (row + 1) / 2);
int noOfHashToPrint = (isFirstHalf) ? (2 * (i-1))+1 : (2 * (row-i) + 1);
for (j = 1; j <= noOfHashToPrint; j++)
System.out.print("#");
System.out.println();
}
}
答案 3 :(得分:0)
我认为这是简单的功能,
public void printPattern(int row) {
int k=0;
for(int i=0; i<row; i++) {
for(int j=0; j<=k; j++) {
System.out.print("#");
}
k++;
System.out.println();
}
}
答案 4 :(得分:0)
char[] value = new char[5];
int j = 0;
for (int i=0; i< 5;i++) {
value[j]='#';
System.out.println(value);
if(i<2) {
value[j+1] ='#';
value[j+2] ='#';
j=j+2;
}
else {
if(j != 0) {
value[j]=' ';
value[j-1]=' ';
j=j-2;
}
}
}