创建一个新方法nana,在主方法中递归调用输出5000以内的斐波那契数列,每行显示5个
如题,请大佬教教我 public static void main(String[] args) {Scanner scanner = new Scanner(System.in);
for (int i = 1; fibo(i) <= 5000; i++) {
System.out.print(fibo(i) + " ");
if (i % 5 == 0) {
System.out.println();
}
}
}
public static int fibo(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibo(n - 1) + fibo(n - 2);
}
} 所以你的意思究竟是斐波那契用递归还是打印的时候用递归? 斐波那契用递归上面的方法是正确的 本帖最后由 伍陆柒5678 于 2021-1-7 11:43 编辑
//如果是打印的时候用递归
class A {
public static void main (String args) {
print(5000);
}
public static void print(int n) { //假设用户给的n都是合理的(5的倍数)
if (n == 0) {
return;
}
print(n - 5);
for (int i = 1; i <= 5; i++) {
int result = fibo(n - 5 + i);
System.out.print(result + " ");
}
System.out.println();
}
private static int fibo(int n) {
if (n == 1) {
return 1;
}
if (n == 2) {
return 1;
}
int i = 1;
int j = 1;
while (n - 2 > 0) {
int temp = j;
j += i;
i = temp;
n--;
}
return j;
}
}
页:
[1]