java每日一练(金字塔算法实现)

来源:互联网 发布:mac怎么去掉dashboard 编辑:程序博客网 时间:2024/06/16 11:30

实现:输入任意一个行数,实现该行数的金字塔

     *

   ***

  *****

*******

步骤1:

分析(以4行金字塔为例子):每一行先打印出空格,然后打印出*;每行的空格依次是3-->2-->1-->0,每行的*依次是1-->3-->5-->7

从分析可以两个for循环可以分别实现每行要打印出的,简要写出算法

lay  //行数

for(int rowLine=1;rowLine<=lay;rowLine++)   //rowLine为当前行

{

打印出当前行的空格

打印出当前行的*

System.out.println("");

}

打印出当前行的空格:3、2、1、0,那么对应for循环应该是

for(int i=1;i<=lay-rowLine;i++) // (层数-当前行数)为当前行需要打印出的空格

{

System.out.print(" ");

}

打印出当前行的*:1,,3,5,7,那么对应的for循环应该是

for(int j=1;j<=2*rowLine-1;j++)//    (当前行*2-1)为当前需要行需要打印出的*个数

{

System.out.print("*");

}

经过以上分解后,整个步骤就非常清晰了


步骤2:

输入任意层数实现

这个地方需要调用扫描

import java.util.Scanner;

Scanner sc=new Scanner(System.in);

lay = sc.nextInt();


具体代码实现

import java.util.Scanner;class Pyramid{public static void main(String[] args){Scanner sc = new Scanner(System.in);System.out.print("请输入行数:");int lay = sc.nextInt(); //层数for(int rowLine=1;rowLine<lay+1;rowLine++){//先打出空格,1>3,2>2,3>1,4>0for(int nulNum=1;nulNum<=lay-rowLine;nulNum++){System.out.print(" ");}//打出*,每层个数打出来 1>1;2>3;3<5;4<7;for(int AsteriskNum=1;AsteriskNum<=rowLine*2-1;AsteriskNum++) {System.out.print("*");}System.out.println("");}}}







原创粉丝点击