使用for迴圈輸出空心的菱形的思路

2021-07-05 17:28:05 字數 979 閱讀 7424

之前已經成功寫過一次**,今天重新看這個題目時,一下子又沒了思路,在草稿紙上比劃了大概十分鐘才想到實現的思路。思路跟上次實現的完全一樣,發現時間長了就忘記了!真是好記性不如爛筆頭,何況我這麼差的記性呢!現把解決該問題時,自己的思路寫下來分享一下。(注意重點看我怎麼思考的,不要一下子就看**)

圖 1要輸出如圖1所示的菱形,第一反應是看看這個菱形有什麼特點。在草稿紙上比劃了半天,將圖1轉化成了圖2用數字表示的圖

圖 2比較圖1和圖2發現有以下特點:

(1)圖2中的每乙個數字代表圖1中每個*號在所在行的列號。

(2)6+6、5+7、4+8、3+9、2+10、1+11均等於12。

由於菱形是對稱的,所以先考慮上半部分,即如圖3所示

圖 3仔細觀察圖3,可以發現:

(1)圖3為6行11列。

(2)左半部分第1行為6、第2行為5、..............、第6行為1;由此可知外迴圈應使用for(int i=6;i>=1;i--)

(3)用i代表行號,j代表列號;當i=j或者j=12-i時該位置的應輸出*號,其他位置輸出空格。

有了以上分析,就可以寫出輸出圖3所示圖形的核心**,如下:

for(int i=6;i>=1;i--)else

}system.out.println();

}

要想輸出菱形的下半部分,只需將外迴圈改為for(int i=2;i<=6;i++)即可。

看到這兒,相信你不用看下面的完整**,自己就可以完全寫出實現的**了!如果你還沒有寫,動手實踐一下吧!

附錄:完整**:

public class diamond else

}system.out.println();

} for(int i=2;i<=6;i++)else

}system.out.println();

} }}

輸出空心菱形問題

輸出空心菱形 或者以指定的圖形輸出.輸出此菱形 方法一 可以使用乙個for迴圈解決,不過演算法不容易理解.方法二 把菱形拆分成兩部分,分別輸出上半部分和下半部分.import void putdiamond int line char c if i 0 printf c c for int j 1 ...

利用巢狀迴圈列印菱形及空心菱形

思路分析 將菱形分為兩個等腰三角形 分別是上等腰三角形和下等腰三角形 其中上等腰三角形的外側迴圈所對應的行數為 length 2 1 下等腰三角形的外側迴圈的行數為 length 2i空格 星星031 1232 1530 7i length 2 1 i 1 2 i 1i空格 星星015 1232 3...

「 」組成的菱形與空心菱形

public class print for int j 0 j i 2 1 j system.out.println 菱形下半部分 for int i 1 i 7 i for int j 13 i j i j system.out.println system.out.println n 空心菱形...