思路
1.易得沙漏符号总数为2(n^2)-1
2.每行个数是2n-1
3.用sign判断每行输出空格数
#include<stdio.h>
int main(){
int N;
char sym;
scanf("%d %c",&N,&sym);
int n,i;
int sign=0;
n=0;
while(2*n*n-1<=N){
n++;
}
for(i=n-1;i>=1;i--){
for(int u=0;u<sign;u++){
printf(" ");
}
sign++;
for(int m=0;m<2*i-1;m++){
printf("%c",sym);
}
printf("\n");
}
sign-=2;
for(i=2;i<n;i++){
for(int u=sign;u>0;u--){
printf(" ");
}
sign--;
for(int m=0;m<2*i-1;m++){
printf("%c",sym);
}
printf("\n");
}
n--;
printf("%d",N-2*n*n+1);
return 0;
}