参考代码
#include <iostream> using namespace std; //上下部分分开输出 int main() { int n;cin>>n; char c; cin>>c; int t=n; t--; //t剩下的个数 int lay=1;//总层数 for(int i=3;t>i*2;i+=2){ t-=i*2; lay+=2; } // cout<<lay; //输出上半部分 for(int i=1; i<=(lay-1)/2+1; i++){ for(int j=1;j<i;j++) cout<<' '; for(int j=1;j<=lay-i*2+2;j++) cout<<c; cout<<endl; } //输出下半部分 for(int i=1; i<=(lay-1)/2;i++){ for(int j=1;j<=lay/2-i;j++) cout<<' '; for(int j=1;j<=2*i+1;j++) cout<<c; cout<<endl; } cout<<t; return 0; }