我问“有多少行”并希望它打印出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 + " ");
}
}
}
答案 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);