打印菱形,要从要打印的图形中寻找规律,本例中通过建立字符'*'的个数最多的一行的个数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(); } }
}
“` 总结: 用计算机解决问题时,要善于寻找外界事物的规律,建立一种数学模型。