本题吃了格式的亏,只需要输入一行空格即可
关键求出2*n*n-1即可
#include<iostream>
using namespace std;
int main()
{
int line,x,y,sum;
char c;
scanf("%d %c",&x,&c);
for(int i=1;;i++)
{
sum=2*i*i-1;
if(sum>x)
{
line=i-1;break;
}
}
int cnt=0;
for(int i=line;i>0;i--)
{
for(int j=0;j<cnt;j++)
printf(" ");
for(int j=0;j<2*i-1;j++)
printf("%c",c);
printf("\n");
cnt++;
}
cnt=cnt-2;
for(int i=2;i<=line;i++)
{
for(int j=0;j<cnt;j++)
printf(" ");
for(int j=0;j<2*i-1;j++)
printf("%c",c);
printf("\n");
cnt--;
}
y=x-(2*line*line-1);
printf("%d",y);
}