- 注意输出的字符是自己输入的,不是固定的'*'
- 先求出多少层,然后到一定条件反转一下就行了
#include<iostream>
using namespace std;
int main(){
int n,m;
string s;
cin>>n>>s;
int level;
int sum=1,i;
for(i=3;sum<=n;i+=2){
sum=sum+i*2;
}
level=i-4;
int flag=1;
int ans=level;
for(i=1;i<=level;i++){
for(int k=1;k<=(level-ans)/2;k++){
cout<<" ";
}
for(int j=1;j<=ans;j++){
cout<<s;
}
if(ans==1){
flag=0;
}
if(flag){
ans-=2;
}else{
ans+=2;
}
cout<<"
";
}
cout<<n-sum+(level+2)*2;
return 0;
}