返回目录
注意点
- 本文先使用do-while求得最多可以打印的符号数sum和行数col
- 行数col刚好等于一行最大字符数
- 使用tmp代表一行前总共需要打印的空格数
#include <bits/stdc++.h>
using namespace std;
int main(){
int col=-1,sum=-1,n,tmp=0;
char a;
scanf("%d %c",&n,&a);
do{
col+=2;
sum+=col*2;
}while(sum+(col+2)*2<=n);
for(int i=0;i<col;i++){
for(int j=0;j<tmp;j++)printf(" ");
for(int j=0;j<col-tmp*2;j++)printf("%c",a);
printf("\n");
if(i<col/2)tmp++;
else tmp--;
}
printf("%d",n-sum);
return 0;
}