题目:
样例:
代码:
#include <iostream>
using namespace std;
int main(void){
int sum = 1, num;
char c;
cin>>num>>c;
int j = 3;
for(; ;j += 2){
if(sum+2*j > num)
break;
sum += 2*j;
}
int limit = j-2;//总层数
//打印上半部分
for(int i = 0; i <= limit/2; i++){//上面打印层数
for(int j = 0; j < i; j++)
cout<<" ";
for(int j = 0; j < limit-2*i; j++)
cout<<c;
cout<<endl;
}
//打印下半部分
for(int i = 1; 2*i+1 <= limit; i++){//下面打印层数
for(int j = 0; j < (limit-2*i-1)/2; j++)
cout<<" ";
for(int j = 0; j < 2*i+1; j++)
cout<<c;
cout<<endl;
}
cout<<num-sum;
return 0;
}