-3

我在问“有多少行”并希望它打印出帕斯卡三角形。但我收到一个错误:

线程“main”java.lang.Error 中的异常:未解决的编译问题:Pascal 类型中的方法 nthPascalRow(int) 不适用于 Pascal.main(Pascal.java:39) 的参数 (Scanner)

这是我的代码

public class Pascal {
    public static int[] nthPascalRow(int row) {
        if (row == 0) {
            int[] result = { 1 };
            return result;

        }
        if (row == 1) {
            int[] result = { 1, 1 };
            return result;
        }
        int[] previous = { 1, 1 };
        for (int r = 2; r <= row; r++) {
            int[] next = new int[r + 1];
            next[0] = 1;
            for (int i = 1; i < r; i++) {
                next[i] = previous[i - 1] + previous[i];
            }
            next[r] = 1;
            previous = next;
        }
        return previous;

    }

    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.println("How many rows?");
        input.nextInt();
        int[] result = nthPascalRow(input);
        for (int r : result) {
            System.out.print(r + " ");
        }   

    }

}
4

3 回答 3

0

您收到该错误是因为您传入的input是一个 Scanner 对象,而您调用的方法需要一个int row.

重新考虑要传递给该方法的内容。

于 2013-12-15T02:07:21.843 回答
0

您所要做的就是设置

input.nextInt() 

到一个变量,然后将该变量传递给方法示例:

int a = input.nextInt();
int[] result = nthPascalRow(a);
于 2013-12-15T02:07:44.093 回答
0

您应该添加导入

导入 java.util.Scanner;

并使用一个变量来放置用户输入的整数

    int index = input.nextInt();
    int[] result = nthPascalRow(index);
于 2013-12-15T02:20:48.470 回答