题目描述:
小明对斐波那契数列很痴迷,他觉得这是一个非常非常神奇的数列。
他想用斐波那契数列中的数字构造一个三角形,并取名为斐波那契三角形。
一个7层的斐波那契三角形如下所示:
1
1 1 1
1 1 2 1 1
1 1 2 3 2 1 1
1 1 2 3 5 3 2 1 1
1 1 2 3 5 8 5 3 2 1 1
1 1 2 3 5 8 13 8 5 3 2 1 1
现在需要你编写一个程序,输入斐波那契三角形的层数n,输出对应的斐波那契三角形。
-
输入描述
每组输入数据占1行。
输入一个正整数n。(n<=100) -
输出描述
输出一个n层的斐波那契三角形,每一层两个数字之间用一个空格隔开。 -
样例输入
3 -
样例输出
1
1 1 1
1 1 2 1 1
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
if (i == 0) {
list.add(1);
print(list);
continue;
}
if (i == 1) {
list.add(1);
list.add(1);
print(list);
continue;
}
int mididx = list.size() / 2;
int midnum = list.get(mididx);
int next = list.get(mididx + 1);
list.add(mididx + 1, midnum);
list.add(mididx + 1, midnum + next);
print(list);
}
}
/* 打印每一行斐波那契三角形*/
public static void print(List<Integer> list) {
list.forEach(i -> System.out.print(i + " "));
System.out.println();
}
}
PS:本人水平有限,文中如有错漏,欢迎大家指出。转载请注明来源。
本文介绍了如何用Java编写程序,根据斐波那契数列生成一个特定层数的三角形。通过示例输入和输出,展示了程序的功能,适用于编程笔试题目的复习。
234





