思路:把输出分成三部分来写:第一行;第二行到倒数第二行;最后一行。然后根据空格的规律来分别编写。
这道题还要注意的一个地方是每行末尾不用空格,而且从第二个三角形输出开始要在最前面空一行才能AC。
附已AC代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
char s;
int n,i,temp,flag,m;
m = 0;
while(cin >> s && s != '@' && cin>>n)
{
if(m != 0)
cout << endl;
m++;
temp = n - 1;
flag = 1;
while(temp--)
{
for(i = temp; i >= 0; --i)
{
cout << " ";
}
cout << s;
if(temp == n - 2)
{
cout << endl;
}
else
{
for(i = 0; i < flag; ++i)
{
cout << " ";
}
flag += 2;
cout << s;
cout << endl;
}
}
for(i = 0; i < 2 * n - 1; ++i)
cout << s;
cout << endl;
}
return 0;
}