注意:不用输出符号后面的空格
AC代码:
#include<iostream>
using namespace std;
int main()
{
int n;
int sum = 1;
int i = 1; //该行的个数
int i2;
int row = 1; //行数
char str;
cin >> n;
cin >> str;
while (sum <= n)
{
i = i + 2;
sum = sum + 2 * i;
if (sum > n)
{
sum -= 2 * i;
i -= 2;
break;
}
else
{
row++;
}
}
i2 = i;
int i3 = i2; //最多一行的符号总数
for (int j = 1; j <= row; j++)
{
for (int p1 = 1; p1 <= (i3 - i)/2; p1++)
{
cout << " ";
}
for (int k = i; k > 0; k--)
{
cout << str;
}
i = i - 2;
cout << endl;
}
i2 = i2 - (row - 2) * 2;
for (int j = 2; j <= row; j++)
{
for (int p1 = 1; p1 <= (i3 - i2) / 2; p1++)
{
cout << " ";
}
for (int k = i2; k > 0; k--)
{
cout << str;
}
i2 = i2 + 2;
cout << endl;
}
cout << n-sum;
return 0;
}