http://acm.hdu.edu.cn/showproblem.php?pid=4706
1. 这题可以暴力直接printf
2. 把printBlank 独立起来可以使代码简洁
#include <iostream>
using namespace std;
void printBlank(int num)
{
for(int i=0;i<num;i++)
cout<<" ";
}
int main()
{
//cout<<"[pre]"<<endl;
int len1=4,len2=0;
int height=3;
char ch='a';
while(1)
{
if(height==11) break;
int part1=height-2,part2=0;
cout<<char((ch-'a')%26+'a');
printBlank(part1);
part1--;
cout<<char((ch+len1-'a')%26+'a')<<endl;
ch++;
len1-=2;
len2+=2;
for(int i=2; i<height; i++)
{
cout<<char((ch-'a')%26+'a');
printBlank(part1);
cout<<char((ch+len1-'a')%26+'a');
printBlank(part2);
cout<<char((ch+len1+len2-'a')%26+'a')<<endl;
part1--;
part2++;
len1-=2;
len2+=2;
ch++;
}
cout<<char((ch-'a')%26+'a');
printBlank(part2);
cout<<char((ch+len2-'a')%26+'a')<<endl;
ch=char((ch+len2+1-'a')%26+'a');
height++;
len1=len2+2;
len2=0;
}
//cout<<"[/pre]"<<endl;
return 0;
}