#include <iostream>
#include <vector>
using namespace std;
int num, i, j, sum, k, tmp;
char c;
vector<int> v;
int main()
{
//cin >> num;
cin >> num >> c;
i = 1;
sum = i;
while (true)
{
v.push_back(i);
i += 2;
sum += i;
if (2 * sum - 1 > num)
break;
}
//开始输出上半部分
//从第一行到中间的一行
for (j = v.size() - 1; j >= 0; j--)
{
//输出空格
tmp = v.size();
for (k = j; k < tmp - 1; k++)
{
cout << " ";
}
//输出字符
for (k = 0; k <= v[j] - 1; k++)
{
cout << c;
}
cout << endl;
}
//下半部分,不包括中间的1,
for (j = 1; j <= v.size() - 1; j++)
{
tmp = v.size() - 1;
//输出空格
for (k = j; k < tmp; k++)
{
cout << " ";
}
//输出字符
for (k = 0; k <= v[j] - 1; k++)
{
cout << c;
}
cout << endl;
}
sum = 0;
for (j = 0; j < v.size(); j++)
{
sum += v[j];
}
if (num == 1)
{
cout << "0";
}
else if ((num - 2 * sum + 1) != 0)
{
cout << num - 2 * sum + 1;
}
return 0;
}
测试点1:输入为1 *;输出为 * 0。
不知道是什么逻辑。。