这很明显是一道很水的模拟题..........也可以搜索,但是MAX n只是101,直接开二维就行了。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
char a[110][110];
int L;
int R;
int main()
{
cin>>n;
L=(n+1)/2;
R=(n+1)/2;
bool flag=false;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
if (j<L || j>R) a[i][j]='*';
else {
a[i][j]='D';
}
}
if (!flag){
L--;
R++;
}
if (L==0) {
L=L+2;
R=R-2;
flag=true;
continue;
}
if (flag){
L++;
R--;
}
}
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
cout<<a[i][j];
cout<<endl;
}
return 0;
}