Java Pascal三角形-仅打印';n';第一线

Java Pascal三角形-仅打印';n';第一线,java,Java,下面是一些输出Pascal三角形的代码,它显示了三角形的所有线条。例如,如果用户输入为5,则其输出如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 不过,我只想让它输出最后一行。所以对于5个,只有1 4 6 4 1。我很难做到这一点,虽然这很容易,我知道。感谢您的帮助 import java.util.Scanner; public class PascalsTriangle { public static void computeRow(int n) {

下面是一些输出Pascal三角形的代码,它显示了三角形的所有线条。例如,如果用户输入为5,则其输出如下:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
不过,我只想让它输出最后一行。所以对于5个,只有1 4 6 4 1。我很难做到这一点,虽然这很容易,我知道。感谢您的帮助

import java.util.Scanner;

public class PascalsTriangle {
    public static void computeRow(int n) {
       int counter;
       for (int i = 0; i < n; i++) {
           for (int j = 0; j <= i; j++) {
               System.out.print(pascalValue(i, j) + " ");
           }
           System.out.println();
        }
    }

    public static int pascalValue(int i, int j) {
        if (j == 0) {
            return 1;
        } else if (j == i) {
            return 1;
        } else {
            return pascalValue(i - 1, j - 1) + pascalValue(i - 1, j);
        }
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Which line number of Pascal's Triangle? ");
        int row = scanner.nextInt();
        System.out.print("Line " +row+" of Pascal's Triangle:\n");
        computeRow(row);
    }
}
import java.util.Scanner;
公共类PascalsTriangle{
公共静态无效计算机OW(int n){
整数计数器;
对于(int i=0;i对于(int j=0;j更改
computeRow()
方法,以包括对要打印的三角形的特定线的检查。对于您的情况,您只想打印最后一行,这将在外部
for
循环的最后一次迭代期间发生:

public static void computeRow(int n) {
    int counter;
    for (int i = 0; i < n; i++) {
        // only output the line if it be the last one
        if (i == n-1) {
            for (int j = 0; j <= i; j++) {
                System.out.print(pascalValue(i, j) + " ");
            }
            System.out.println();
        }
    }
}

public static void main(String[] args) {
    computeRow(5);
}

为什么还要使用外部for循环?内部循环仅在i=n-1时执行。因此,您可以锁定i的值,即行索引(n),并使用如下递归函数:

for (int j=0; j<=n; j++) {
   System.out.print(pascalValue(n, j) + " ");
}

for(int j=0;jTry)在print语句之前放置一个条件。您会使用哪种条件?我在computeRow中尝试了print语句之前的各种if语句,但似乎找不到一个符合预期的语句。谢谢!这很有效。我从未想过会这样。再次感谢Tim。
for (int j=0; j<=n; j++) {
   System.out.print(pascalValue(n, j) + " ");
}
var getRow = function(rowIndex) {
    if (rowIndex == 0) {
      return [1];
    }
    else {
        var row = [1];
        previousLine = getRow(rowIndex - 1);
        for (let i = 0; i < previousLine.length - 1; i++) {
          row.push(previousLine[i] + previousLine[i + 1]);
        }
        row.push(1);
    } 
    return row;
};