欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java实现杨辉三角

发布时间:2023/12/31 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java实现杨辉三角 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

首先杨辉三角的构成如下

通过分析能得出如下两个规律

1.第n行有n个元素,并且每一行的首尾元素都是1

1.中间的元素等于上面相邻的元素之和,用二维数组表示就是arr[i][j] = arr[i-1][j] + arr[i-1][j-1]

接下来就是实现动态开辟二维数组以此表示杨辉三角形

int level = myscanner.nextInt();//给level(控制层数)开辟空间int arr[][] = new int[level][];

注意:这里的二维数组与杨辉三角形的关系是,外层数组控制三角形行数,内层控制每行的元素,所以通过level可以实现输出任意层数的杨辉三角形。

这里在分析两层循环的作用: 

//杨辉三角算法for(int i=0;i<arr.length;i++) { //外层遍历行数arr[i] = new int[i + 1]; //给每一行数组开辟空间for (int j = 0; j < arr[i].length; j++) {if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}

上面已经给外层行数开辟了动态空间,在遍历第一层循环的时候,再给每一行元素开辟空间,这里空间的大小通过规律: 第n行有n个元素,可知每行有(i+1)个元素因为i循环是从=0开始所以+1

arr[i] = new int[i + 1]; //给每一行数组开辟空间

然后就进入第二层循环主要控制每行元素的输出,由规律:每一行的首尾元素都是1,可知通过if语句,可以判断遍历的元素是否在第一个和最后一个位置。

if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;}

 执行完if语句后通过else可以输出中间元素的值,而通过规律:中间的元素等于上面相邻的元素之和,可以用二维数组表示如下:

else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}

综上就是杨辉三角形的几大要点,总的代码如下: 

import java.util.Scanner; public class yanghui {public static void main(String[] args){Scanner myscanner = new Scanner(System.in);System.out.println("请输入杨辉三角的层数");int level = myscanner.nextInt();//给level(控制层数)开辟空间int arr[][] = new int[level][];//杨辉三角算法for(int i=0;i<arr.length;i++) { //外层遍历行数arr[i] = new int[i + 1]; //给每一行数组开辟空间for (int j = 0; j < arr[i].length; j++) {if (j== 0 || j == arr[i].length - 1) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];}}}//利用循环输出二维数组for(int i=0;i<arr.length;i++){for(int j=0;j<arr[i].length;j++) {System.out.print(arr[i][j]+"\t");}System.out.println(); //每遍历一层输出到下一行}} }

然后运行效果如图: 

总结

以上是生活随笔为你收集整理的java实现杨辉三角的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。