java编程打印出杨辉三角形

人气:431 ℃/2023-07-16 10:21:00

工具/材料

intellij idea或myeclipse

jdk

操作方法

打开myeclipse,点击File->New->Java Project。

输入项目名并点击Finish。

在src下创建一个类,放于某个包下面。输入包名与类名,然后点击Finish。

创建生成杨辉三角的函数getYangHui,参数为n,表示对应的二项式(a+b)^n的指数。

首先创建而为数组,大小为(n+1)*(n+1),并进行初始化,并对数组第一列与最后一列赋初值为1。

根据杨辉三角的规律,依次填充每一个位置。

遍历数组并打印,使用for循环。

写一个main函数进行测试,如下。

测试结果如下,说明我们的程序是正确的。

java打印三角形详细教程

JAVA 打印三角形

首先,确定我们的输出结果是:

那么我们怎么才能做到这样呢?

1、首先分析图形的结构

我们可以看到,图形共5行,那么,我们是否可以建立一个for循环语句,使其控制在5行?答案是肯定的。

for(int i = 1 ;i <= 5 ;i ){}

这样,我们就建立了一个循环5次的for循环代码块,为最外圈的循环。

2、然后,分析图形是怎样构成的,我们可以把图形拆分为以下几部分:/p>

我们可以把图形拆分为这样三个三角形。

3、建立1号空白三角形

可以看,第一行是输出4个空格,第二行输出3个空格,第三行输出2个,第四行输出1个,第五行没有

从这个规律可以看出,是依次递减的规律,那么如何实现呢?

我们可以想象从1到5,中间有四个数字;从2到5中间有3个数字,从3到5……

是不是可以利用这个原理呢?答案是当然的。那么如何实现?请看代码:

for(int i = 1;i<=5 ;i ) { for(int j = 5; j >= i ; j--)//建立1号图形 System.out.print(" "); System.out.println();}

第一个for语句就是刚才定义的五次循环语句

第二个for循环,我们来进行解析:

首先 定义一个int类型的j变量,给j赋值为5

然后我们想,既然要缩短距离,那么每次循环j就-1,那么刚好符合我们的要求:

第一次大循环 i=1,j=5, 所以符合j>=i的条件然后输出一个空格,然后j-1,现在j的值为4符合j>=i,再输出

……

一直到j=0,j>=i不符合,跳出内循环

现在到System.out.println(); 换行

现在回到外循环 i ,i变成2,符合i<=5,进入内循环

定义j=5 , j>=i,符合,输出一个空格,j-1

j现在为4 ,j>=i,符合,输出一个空额,j-1

……

一直到j=1,j>=i,不成立,跳出内训还,然后换行

然后i 1 然后再进入内循环……

如此循环下去 形成了一个四行的倒三角,1号图案形成。

4、建立2号图形,和1号图形原理完全相同,不过正好相反

for(int i = 1 ;i<=5 ;i ){ for(int j = 5; j >= i ; j--)//建立1号图形 System.out.print(" "); for(int j = 1; j <= i; j )//建立2号图形 System.out.print("*"); System.out.println();}

如建立1号图形相同,大家可以自己理解,如此2号建立

5、建立3号图形

for(int i = 1; i <= 5; i ){ for(int j = 5 ;i <= j; j--)//建立1号图形 System.out.print(" "); for(int j = 1; j <= i; j )//建立2号图形 System.out.print("*"); for(int j = 1; j < i; j )//建立3号图形 System.out.print("*");}

同样,如同1号二号相同,建立3号图形原理相同

但是大家注意一点,3号图形没有在第一行输出,所以要在第一次大循环中掐断它,让它在第二次大循环中输出

所以 这次的判断条件为 j < i 去掉了等于。

完整源码:

class Demo{

public static void main(String[] args){

for(int i=1;i<=5;i ){

for(int j=5; i<=j; j--)

System.out.print(" ");

for(int j=1; j<=i; j )

System.out.print("*");

for(int j=1; j<i; j )

System.out.print("*");

System.out.println();

}

}

}

推荐

首页/电脑版/网名
© 2025 NiBaKu.Com All Rights Reserved.