#include <iostream>
using namespace std;
const int N = 300;
int s[N+1];
char q[N+1][N+1];
int main(void)
{
char c;
int n;
for(int i=1; i<=100; i++){
s[i] = 99999;
}
for(int i=1; i<=N; i++){
for(int j=1; j<=N; j++){
q[i][j] = ' ';
}
}
int sum = 1;
int j = 3;
for(int i=1; i<=100; i++){
s[i] = sum;
sum += 2 * j;
j += 2;
}
cin >> n >> c;
//scanf("%d %c",&n,&c);
int count;
int b;
for(int i=1; i<=100; i++){
if(s[i] < n && n < s[i+1]){
count = n - s[i];
b = i;
break;
}else if(s[i] == n){
b = i;
count = 0;
}
}
int x=0;
int a;
for(int i=1; i<=b; i++){
for(int j=i; j<=i-1+2*b-1-x; j++){
q[i][j] = c;
}
x += 2;
}
for(int i=b+1; i<=2*b-1; i++){
for(int j=1; j<=2*b-1; j++){
q[i][j] = q[2*b-i][j];
}
}
for(int i=1; i<=2*b-1; i++){
for(int j=1; j<=2*b-1; j++){
printf("%c",q[i][j]);
}
printf("\n");
}
printf("%d",count);
return 0;
}
有格式错误。。。