原创作品 转载请注明出处http://blog.csdn.net/always2015/article/details/45771815
这一道题有点难度,主要注意将结果分三部分输出,还有就是每行的最后是没有空格的,还有就是最后的结果格式, 在代码中都有注释;我的AC代码如下:
#include <iostream>
using namespace std;
int main()
{
char input_ch;
int n,flag=0;
while(cin>>input_ch&&input_ch!='@'&&cin>>n)
{
//注意下一个的输入与上一个的结果之间是没有空格的
if(flag>0)cout<<endl;
/*将输出的部分分为三部分:第一部分就是第一行,因为第一个输出只有一个字符,
接着就是从第二行开始到倒数第二行,这几行只有两个字符,最后就是最后一行输出全部字符*/
if(n==1)
cout<<input_ch<<endl;
else
{
//第二行到倒数第二行
for(int i=1; i<=n-1; i++)
{
for(int j=1; j<n+i; j++)
{
if(j==n-i+1||j==n+i-1)
cout<<input_ch;
else
cout<<" ";
}
cout<<endl;
}
//最后一行
for(int i=0; i<2*n-1; i++)
{
cout<<input_ch;
}
cout<<endl;
}
flag++;
}
return 0;
}
结果图如下: