【问题标题】:Please explain the following Pascal's Triangle Code [closed]请解释以下帕斯卡三角码[关闭]
【发布时间】:2015-07-05 20:33:23
【问题描述】:

在提供的 Pascal Triangle 代码中,如果有人能帮助我消除以下疑虑,我将不胜感激。

1 public class Pascal {
2
3    static void calculatePascal (int[][] t) {
4        for (int i=0; i<t.length; i++) {
5            // the first entry in each row is 1
6            t[i][0] = 1;
7
8            for (int j=1; j<t[i].length-1; j++) {
9      
10                t[i][j] = t[i-1][j-1] + t[i-1][j];
11            }
12            // the last entry in each row is 1
13            t[i][ t[i].length-1 ] = 1;
14        }
15    }
16
17    static void printTriangle (int[][] t) {
18        for (int i=0; i<t.length; i++) {
19            for (int j=0; j<t[i].length; j++) {
20                System.out.print( t[i][j] + " " );
21            }
22            System.out.println();
23        }
24    }
25
26    public static void main (String[] args) {
27        int lines = Integer.parseInt( args[0] );
28        int[][] triangle = new int[lines][];
29        for (int i=0; i<lines; i++) {
30            triangle[i] = new int[ i+1 ];
31       }
32       calculatePascal(triangle);
33        printTriangle(triangle);
34   }
35
36 }
  1. 第 30 行是什么意思?在第 28 行,我们创建了一个二维数组,称为三角形。在第 30 行中正在做什么?

  2. 在这种情况下如何将帕斯卡三角形缩进为三角形?

  3. 为什么我们将 calculatePascalprintTriangle 方法的返回类型都声明为 void?

【问题讨论】:

  • @SashaSalauyou 不是 triangle[ ][ ] 二维数组吗?它包含两件事:行数和未声明的列数?
  • 查看我的答案以获得解释
  • 这正是我的困惑,因为第 28 行是三角形 [ ][ ],而第 30 行是三角形 [ ]。
  • 这不是帕斯卡。 new int[][] 你没有声明矩形数组。您声明了一个平面数组,它将保存int[] 作为值,即。 e.数组数组。

标签: java arrays static-methods pascals-triangle


【解决方案1】:
  1. 在第 28 行,您创建一维数组,该数组仍然保存默认分配的 null 值。在第 30 行,您将每个 null 替换为新数组,该数组的大小比其索引大一。
  2. Java 中的二维数组实际上不是矩阵。它是数组的数组,所以它不需要是矩形的。在您的情况下:

triangle[0] = [1] triangle[1] = [1, 1] triangle[2] = [1, 2, 1] triangle[3] = [1, 3, 3, 1] ...

  1. 您不需要返回任何内容,因为在这里您对作为引用传递的数组执行操作。

【讨论】:

  • 啊,我明白了。谢谢你的例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 2012-07-13
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多