#include <iostream> using namespace std; int num[1000];//每层需要的符号数 int main() { //初始化每层需要的字符数 num[1]=1; for(int i=2;i<1000;i++) { num[i]=num[i-1]+2; } int n; char c; cin>>n>>c; int lay=1; while((lay+lay*(lay-1))*2-1<=n) { lay++; } lay--; int space=0; int ans=0; for(int i=lay;i>0;i--) { //输出空格 int j=0; while(j<space) { cout<<" "; j++; } space++; //输出字符 j=0; while(j<num[i]) { cout<<c; ans++; j++; } //每输出一层就换行 cout<<endl; } space-=2; for(int i=2;i<=lay;i++) { int j=0; while(j<space) { cout<<" "; j++; } space--; j=0; while(j<num[i]) { cout<<c; ans++; j++; } cout<<endl; } cout<<n-ans<<endl; return 0; }
转载于:https://www.cnblogs.com/xiongmao-cpp/p/6363327.html
相关资源:数据结构—成绩单生成器