目标:单独创建细谷三角形的递归表示。
你的任务:著名数学家 Haru Hosoya 描述了一个三角形(见下文),它是基于斐波那契数列的三角形数字排列。从用户那里获取一个高度并使用一个数组来存储每一行的值。使用递归方法打印出适当数量的细谷三角形。不要假设输入会很好。您还应该实现 try...catch 块来捕获错误输入。
这是我到目前为止的代码:
public class HosoyaTri {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
boolean continueLoop = true;
int num = s.nextInt();
do {
try {
System.out.println("How many levels?");
System.out.println(num + " levels");
continueLoop = false;
} catch (InputMismatchException im) {
System.err.println("I said INTEGER, try again");
s.nextLine();
} catch (Exception e) {
System.err.println("What did you do?");
}
} while (continueLoop);
int triangle[][] = new int[num][num];
for (int i = 0; i < num; i++) {
for (int j = 0; j < num; j++) {
triangle[i][j] = 0;
}
}
for (int i = 0; i < num; i++) {
triangle[i][0] = 1;
}
for (int i = 1; i < num; i++) {
for (int j = 1; j < num; j++) {
triangle[i][j] = triangle[i - 1][j - 1] * triangle[i - 1][j];
}
}
for (int i = 0; i < num; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] + " ");
}
System.out.println();
}
}
}