ooooooo*******--
oooooo--******o*
oooooo******--o*
ooooo--*****o*o*
ooooo*****--o*o*
oooo--****o*o*o*
oooo****--o*o*o*
ooo--***o*o*o*o*
ooo*o**--*o*o*o*
o--*o**oo*o*o*o*
o*o*o*--o*o*o*o*
--o*o*o*o*o*o*o*
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,k=1;
cin>>n;
for(int i=1;i<=n;i++){
cout<<"o";
}
for(int i=1;i<=n;i++){
cout<<"*";
}
cout<<"--"<<endl;//第一行可以单独输出
int m=n;//用来记录
n-=1;//将第一行和最后一行看成一组,减去一组
while(n>=4){//具有规律的一共有n-4组
for(int i=1;i<=n;i++){
cout<<"o";
}
cout<<"--";
for(int i=1;i<=n;i++){
cout<<"*";
}
for(int i=1;i<=k;i++){
cout<<"o*";
}
cout<<endl;
for(int i=1;i<=n;i++){
cout<<"o";
}
for(int i=1;i<=n;i++){
cout<<"*";
}
cout<<"--";
for(int i=1;i<=k;i++){
cout<<"o*";
}
cout<<endl;//换行
n--;// 规律组数减1
k++;//用来记录已移动完成的黑白棋子组数
}
int l=0;//从0开始,调用下面数组的元素。
string out[5] = {"ooo--***o*","ooo*o**--*", "o--*o**oo*", "o*o*o*--o*"};
//对无法用递推来输出规律的部分打好表
n++;//上面的循环多减了1,这边加上,保证后面输出四行
while(n){
cout<<out[l];//输出字符串数组
for(int i=1;i<=k-1;i++){
cout<<"o*";
}
n--;//剩余行数减1
l++;//准备调用下一个元素
cout<<endl;
cout<<out[l];
for(int i=1;i<=k-1;i++){
cout<<"o*";
}
cout<<endl;
l++;
n--;
}
cout<<"--";
for(int i=1;i<=m;i++){
cout<<"o*";
}//最后一行单独输出。
return 0;
}