实现思路:我们可以先把杨辉三角想象成一个空的二维数组,然后再给它赋值输出即可。
关键在于如何赋值:仔细观察上图可以得出除了每一行第一个数以及最后一个数(都是1),
中间的数字规律就是:a[ i ][ j ] = a[ i - 1 ][ j - 1 ] + a[ i - 1 ][ j ]
实现代码:
public class Triangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入数字控制杨辉三角的层数
int layer = scanner.nextInt();
//利用二维数组的结构实现(容易赋值)
int[][] triangle = new int[layer][layer];
//外层循环控制行的赋值
for (int i = 0; i < triangle.length; i++) {
//当i=0,j按照步长为1往后赋值(每一行数字的个数等于行数,所以循环次数就是i)
for (int j = 0; j <= i; j++) {
//每行第一个数跟最后一个数都是1
if (j == 0 || i == j){
triangle[i][j] = 1;
}else {
//杨辉三角的规律
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
//赋值完就输出
System.out.print(triangle[i][j] + " ");
}
//保证换行
System.out.println();
}
}
}
相信大家更多的是看到以下的杨辉三角:
其实个只是改变了输出格式而已,核心代码还是上面部分的代码。为了更好的理解,我们先实现下面的*输出(先拆开写,再合并)。
*******
******
*****
****
***
**
*
拆开:
for (int i = 0; i < 7; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 6; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 5; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 4; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 3; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 2; i++) {
System.out.print("*");
}
System.out.println();
for (int i = 0; i < 1; i++) {
System.out.print("*");
}
合并:文章来源:https://www.toymoban.com/news/detail-718720.html
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7 - i; j++) {
System.out.print("*");
}
System.out.println();
}
到这里其实我们已经差不多实现等腰的杨辉三角了,我们最后把*换成空格就ok了。文章来源地址https://www.toymoban.com/news/detail-718720.html
public class Triangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入数字控制杨辉三角的层数
int layer = scanner.nextInt();
//利用二维数组的结构实现(容易赋值)
int[][] triangle = new int[layer][layer];
//外层循环控制行的赋值
for (int i = 0; i < triangle.length; i++) {
//当i=0,j按照步长为1往后赋值(每一行数字的个数等于行数,所以循环次数就是i)
for (int j = 0; j <= i; j++) {
//每行第一个数跟最后一个数都是1
if (j == 0 || i == j){
triangle[i][j] = 1;
}else {
//杨辉三角的规律
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
}
for (int i = 0; i < triangle.length; i++){
for (int j = 0; j < triangle.length - i; j++) {
//*替换成" "
System.out.print(" ");
}
//替换的同时输出杨辉三角
for (int k = 0; k <= i; k++) {
System.out.print(triangle[i][k] + " ");
}
//保证换行
System.out.println();
}
}
}
到了这里,关于杨辉三角(Java)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!