java每日一练(金字塔算法实现)
2017-11-05 21:37
253 查看
实现:输入任意一个行数,实现该行数的金字塔
*
***
*****
*******
步骤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>0
for(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("");
}
}
}
*
***
*****
*******
步骤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>0
for(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("");
}
}
}
相关文章推荐
- 面试算法java方式实现打印金字塔三角形
- Java和C#摘要算法实现
- 中国农历算法java实现(转自Herong Yang)
- [CodeProject每日一荐]实现Double Metaphone语音匹配算法[一]:介绍与C++实现
- Java中的几种算法的实现
- [CodeProject每日一荐]实现Double Metaphone语音匹配算法[二]:Visual Basic的COM实现和关系数据库解决方案
- FIFO与LRU 算法实现(java)
- 图象细化算法实现的java applet源代码
- AIX 程序设计大赛-AIX正方形问题算法及Java程序实现(方案三)
- AIX 程序设计大赛-AIX正方形问题算法及Java程序实现
- java的几种算法的实现
- [基本算法]Java——编写一个线段类,实现基本数学算法
- 通过Java实现一种常用的权限控制算法
- java实现的18位身份证格式验证算法
- 操作系统进程调用的5种算法 java实现
- 在java中实现图形学中的直线算法
- java实现的18位身份证格式验证算法
- 图像边缘检测(Canny 算法)的Java实现
- java实现的18位身份证格式验证算法
- MD5 算法的java实现