使用用户输入绘制Pascal三角形(Java)

时间:2013-12-15 02:03:25

标签: pascals-triangle

我问“有多少行”并希望它打印出pascal三角形。但是我收到了一个错误:

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

这是我的代码

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 + " ");
        }   

    }

}

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您需要做的就是设置

input.nextInt() 

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

int a = input.nextInt();
int[] result = nthPascalRow(a);

答案 2 :(得分:0)

您应该添加导入

  

import java.util.Scanner;

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

    int index = input.nextInt();
    int[] result = nthPascalRow(index);