如何打印?
!!!!!!!!!!!!!!!!!!!!!!
\\!!!!!!!!!!!!!!!!!!//
\\\\!!!!!!!!!!!!!!////
\\\\\\!!!!!!!!!!//////
\\\\\\\\!!!!!!////////
\\\\\\\\\\!!//////////
我有:
public class SlashFigure {
public static void main(String[] args){
first();
}
public static void first() {
for ( int i= 1; i<=6; i++) {
for (int l = 0; l <= 2 * i -2; l++) {
System.out.print("\\");
}
for (int e = 22; e >= -2*i + 26; e-=1) {
System.out.print("!");
}
for (int r = 0; r <= 2 * i -2; r++) {
System.out.print("/");
}
System.out.println();
}
}
}
并打印出来:
\/
\\\!///
\\\\\!!!/////
\\\\\\\!!!!!///////
\\\\\\\\\!!!!!!!/////////
\\\\\\\\\\\!!!!!!!!!///////////
答案 0 :(得分:1)
您写的代码超出了您的需要。您要显示的行的模式只是line * 2 * \
+ 22 - line * 4 * !
+ line * 2 * /
,只有6行,但它总是包含2个字符的组,所以我们可以将所有这些除以2,并观察\\
和//
遵循相同的规则:
for(int i=0, j=0, k=0; i<6; i++) {
for(j=0; j<i; j++) { System.out.print("\\\\"); }
for(k=0; k<(11-2*i); k++) { System.out.print("!!"); }
for(j=0; j<i; j++) { System.out.print("//"); }
System.out.println();
}
完成。
答案 1 :(得分:0)
你有多个嵌套for循环,但你只需要一个开销循环来逐行接近。
for(int i = 0; i < 6; i++){
for(int k = 0; k < i*2; k++) System.out.print("\\");
for(int j = i*2; j < 22 - (i*2); j++) System.out.print("!");
for(int l = 0; l < i*2; l++) System.out.print("/");
System.out.println();
}