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<