课后作业之“可爱”的菱形
需要打印出 这样的形状<实菱>
和这样的形状<空菱>
所以我复习了一下小学数学找规律【假的,复习也复习不好了。。】
下面是我的思路:
就简单的找一下各行空格和星号的关系,把空格的地方补出来,只考虑每行最后一个星号之前的空格,不用思考之后的。然后按每一行做最外面的循环,再根据每行星号和行号的关系,用小循环输出相应个数的空格或者星号。
自我感觉就是脑子成了一团浆糊之后,先输出来看看结果,再根据与题设不相同的点去修改,更直观一点~
代码:
package CH04_05;
public class CH04_05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int lay;
lay = 7;
//图形1
for(int i=1;i<=(lay+1)/2;i++) {
for(int j=1;j<=(lay+1)/2-i;j++) {
System.out.print(" ️");
}
for(int k=1;k<=i*2-1;k++) {
System.out.print("*️");
}
System.out.println();
}
for(int i = (lay+1)/2-1;i>=1;i--) {//逆序输出
for(int j=1;j<=(lay+1)/2-i;j++) {
System.out.print(" ️");
}
for(int k=1;k<=i*2-1;k++) {
System.out.print("*️");
}
System.out.println();
}
System.out.println();
//图形2
for(int i=1;i<=(lay+1)/2;i++) {
for(int j=1;j<=(lay+1)/2-i;j++) {
System.out.print(" ️");
}
System.out.print("*️");
for(int l=1;l<=i*2-3;l++) {
System.out.print(" ️");
}
if(i!=1 && i!=lay)
System.out.print("*️");
System.out.println();
}
for(int i = (lay+1)/2-1;i>=1;i--) {//逆序输出
for(int j=1;j<=(lay+1)/2-i;j++) {
System.out.print(" ️");
}
System.out.print("*️");
for(int l=1;l<=i*2-3;l++) {
System.out.print(" ️");
}
if(i!=1 && i!=lay)
System.out.print("*️");
System.out.println();
}
}
}