Problem Description


把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。







Input


每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。



Output


每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。







Sample Input


X 2
A 7
@





Sample Output



X
XXX
 
A
A A
A A
A A
A A
A A
AAAAAAAAAAAAA





设计思路比较简单,只需要在特定的位置将字符输出即可注意:除第一组前面没有空行(后面要输空行)之外,其他组的前后要输出空行
附代码如下:

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
boolean isFirst=true;
while(sc.hasNext()){
String str =sc.next();
if("@".equals(str)){
break;
}
int num =sc.nextInt();
int n=0;
if(isFirst){ //第一组数据前面没有空行
isFirst=false;
}else{
System.out.println();
}
for(int i=0;i<num;i++){ //控制行数
for(int j=1;j<num+i+1;j++){ //控制字符数和空格数
if(i==num-1){ //最后一行每一个位置都输出字符
System.out.print(str);
}else{
if(j==num+i){ //三角形最左边的字符
System.out.print(str);
}else if(j==num-n){ //三角形最右边输出字符,否则输出空格
System.out.print(str);
}else{
System.out.print(" ");
}
}
}
n++; //行数依次遍历
System.out.println();
}
}

}
}