C++:数nを入力します.出力は*と#からなるn*nの正方形です.ワナ一回り~~~~

1211 ワード

数nを入力する.出力は*と#からなるn*nの正方形です.わなを1周~~~~とてもきれいで、次はどのように実現するかを見てみましょう.法則を探すのが重点で、、これは高度に対称な図形なので、対称性を十分に利用して、できるだけ少ない循環の人工的な賦値、多く配列を採用して数値を複製します.のもっと想って~~~~
#include
using namespace std;

int main(){
    int n;
    while(cin>>n){
        char x[n][n];
        for(int i=1;i<=(n+1)/2;i++){
            if(i%2==1){
                for(int j=i;j<=(n+1)/2;j++){
                    x[j][i]='*';
                    x[i][j]='*';
                }
            }
            if(i%2==0){
                for(int j=i;j<=(n+1)/2;j++){
                    x[j][i]='#';
                    x[i][j]='#';
                }

            }
        }//                ,        !!
        for(int i=1;i<=(n+1)/2;i++){
            for(int j=(n+1)/2+1;j<=n;j++){
                x[j][i]=x[n-j+1][i];
            }
        }//       ;
        for(int i=1;i<=n;i++){
            for(int j=(n+1)/2+1;j<=n;j++){
                x[i][j]=x[i][n-j+1];
            }
        }//    
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(j!=n){
                    cout<