题目连接
http://acm.hdu.edu.cn/showproblem.php?pid=2091
空心三角形
Description
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。
Input
每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了
Output
每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
Sample Input
X 2
@
Sample Output
X
XXX
刷些水题打发时间。。
1 #include<cstdio> 2 void go(char ch, int n) { 3 int i, j, k; 4 for (i = 1; i < n; i++) { 5 for (j = i; j <= n - 1; j++) printf(" "); 6 printf("%c", ch); 7 for (k = 1; k < (i << 1) - 2 && i > 1; k++) printf(" "); 8 if (i > 1) printf("%c", ch); 9 printf(" "); 10 } 11 for (i = 0; i < (n << 1) - 1; i++) printf("%c", ch); 12 printf(" "); 13 } 14 int main() { 15 char ch; 16 int n, k = 0; 17 while (~scanf("%c", &ch) && ch != '@') { 18 if (k) printf(" "); 19 k++; 20 scanf("%d ", &n); 21 go(ch, n); 22 } 23 return 0; 24 }