打印菱形,要从要打印的图形中寻找规律,本例中通过建立字符'*'
的个数最多的一行的个数m与每一行需要打印的'*'
的个数i建立了一个关系。
如下面这个菱形
|每一行'*'的个数
* | i=1
*** | i=3
***** | i=5
******* | i=7 ------> 字符'*'个数最多的一行
***** | i=5
*** | i=3
* | i=1
上图可以推的每行'*'的个数为2*i-1;
空格' '的个数为(m-(2*i-1))/2
由此关系可以建立m与i的关系,用外层循环来控制输出的行数,内层循环来控制输出'*',' '的个数。
```
编写程序如下:
public class PrintStar{
private static final int m = 7;
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int i=1;i<=(m/2+1);i++){
for(int j=1;j<=(m-(2*i-1))/2;j++){
System.out.print(’ ‘);
}
for(int k=1;k<=(2*i-1);k++){
System.out.print(‘*’);
}
System.out.println();
}
for(int i=m/2;i>=1;i–){
for(int j=1;j<=(m-(2*i-1))/2;j++){
System.out.print(’ ‘);
}
for(int k=1;k<=(2*i-1);k++){
System.out.print(‘*’);
}
System.out.println();
}
}
}
“`
总结:
用计算机解决问题时,要善于寻找外界事物的规律,建立一种数学模型。