請不要直接抄寫程式碼! 也請不要直接跳到程式碼部分,除非你已經寫好了,想要參考別人的寫法!

回家功課09

  • 先觀察圖形:
    • 輸入 3 就會有 33 列、輸入 5 就會有 55 列,所以輸入 n 就會有 nn
    • 第一列的 o 在最中間、第 n 列的 o 從中間往兩邊增加,而且最中間那列全為 o (最中間怎麽用 n 表示呢?)
    • 不是 x 的地方就是 o
    • o 的變化很像 擴散 ,每多一行 o 就往兩邊擴散一個,經過中間那列之後,就開始 縮減
    • 要注意是小寫 xo !!!!

程式碼大概如下:

#include <iostream>  
using namespace std;  
int main()  
{  
    int n;  
    cin>>n;  
    int center = n/2+1;  
    int offset = 0;  
    for(int row=1;row<=n;row++){  
        for(int col=1;col<=n;col++){  
            if ( col>center+offset || col<center-offset )  
                cout<<"x";  
            else  
                cout<<"o";  
        }  
        if ( row<center )  
            offset++;  
        else  
            offset--;  

        cout<<endl;  
    }  
}
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7
1 2 3 4 5 6 7

x x x o x x x
x x o o o x x
x o o o o o x
o o o o o o o
x o o o o o x
x x o o o x x
x x x o x x x

如果有任何問題,歡迎私訊跟我討論喔!