不积跬步无以至千里,不积小流无以成江海。做好一件事,要从最简单的开始。

下面是比较经典的一个有关循环应用的题目:

请编写程序,打印出金字塔图案:

首先,我们可以看到,金字塔的每一层都是由一定数量的空格和星号组成的,所以我们的任务就是找到总层数(n),第i层,空格数(x)以及星号数(y)的联系。为了方便找到关系,我们可以将原图分析成如下形式:

如果第一眼看不出来,我们可以列个表格找找规律。

n—5;i—1;x—4;y—1;

n—5;i—2;x—3;y—3;

n—5;i—3;x—2;y—5;

n—5;i—4;x—1;y—7;

n—5;i—5;x—0;y—9;

仔细观察可得,x=n-i;y=2*i-1;

得到这个关系后,就可以着手开始编码了

具体代码如下:

import java.util.Scanner;

public class _1_1 {
    public static void main(String[] args){
          //正立金字塔
            int int i,j,k,n;
            Scanner input = new Scanner(System.in);
            System.out.println("请输入金字塔的层数:");
            n=input.nextInt();
            //第一层循环控制金字塔的层数
        for(i=1;i<=5;i++){
            //第二层循环控制每行的空格数
            for(j=1;j<=n-i;j++){
                System.out.print(" ");
            }
            //第二层循环控制每行的星星数
            for(k=1;k<=(2*i-1);k++){
                System.out.print("*");

            }
            System.out.print("\n");//输出完一层后换行
        }

        }

在了解了解题思路后,我们就可以着手写一个倒立金字塔的程序,当然了,正立金字塔和倒立金字塔的空格星星的数量关系是不一样的,具体数量关系不再赘述,倒立金字塔主干代码如下:

Scanner input = new Scanner(System.in);
System.out.println("请输入金字塔的层数:");
n = input.nextInt();
m=n*2;
//外层循环控制金字塔层数
for(i=1;i<=n;i++){
    //内层循环控制空格和星星的数量
    for(j=1;j<i;j++){
        System.out.print(" ");
    }
    //星星
    for(k=1;k<=m-i;k++){
        System.out.print("*");
    }
    m--;
    System.out.println("\n");
}

更多推荐

金字塔图案——Java