分成上下两部分输出会比较容易一些
#include<iostream>
using namespace std;
int main()
{
int n;
char c;
cin>>n>>c;
int i,j,sum=1,count=0;
while(sum<n)
{
count++;
if(sum+(count*2+1)*2>n)
{
count--;
break;
}
sum+=(count*2+1)*2;
}
for(i=1;i<=count;i++)
{
for(j=1;j<i;j++)
cout<<" ";
for(j=0;j<=2*(count+1-i);j++)
cout<<c;
cout<<endl;
}
for(i=1;i<=count;i++)
cout<<" ";
cout<<c<<endl;
for(i=count;i>=1;i--)
{
for(j=1;j<i;j++)
cout<<" ";
for(j=0;j<=2*(count+1-i);j++)
cout<<c;
cout<<endl;
}
cout<<n-sum<<endl;
return 0;
}