課後作業之“可愛”的菱形
需要打印出 這樣的形狀<實菱>
和這樣的形狀<空菱>
所以我複習了一下小學數學找規律【假的,複習也複習不好了。。】
下面是我的思路:
就簡單的找一下各行空格和星號的關係,把空格的地方補出來,只考慮每行最後一個星號之前的空格,不用思考之後的。然後按每一行做最外面的循環,再根據每行星號和行號的關係,用小循環輸出相應個數的空格或者星號。
自我感覺就是腦子成了一團漿糊之後,先輸出來看看結果,再根據與題設不相同的點去修改,更直觀一點~
代碼:
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();
}
}
}