斐波那契数列第n项是Fn


public class Fibonacci {
    public static void main(String args[]){
        int n,fn;//n为第n项,fn为第n项的值
        java.util.Scanner s = new Scanner(System.in);
        n=s.nextInt();
        fn=function(n);
        System.out.println("斐波那契数列第"+n+"项为:"+fn);
    }

    public static int function(int n){
          if(n==1 || n==2) return 1;
          return function(n-1)+function(n-2);
    }

}





递归
import java.util.*;
import java.io.*;
public class fib {
 static int fib(int n){
  if(n==1) return 0;
  if(n==2) return 1;
  return fib(n-1)+fib(n-2);
 }
 public static void main(String args[]){
  int n;
  Scanner cin=new Scanner(System.in);
  n=cin.nextInt();
  System.out.println(fib(n));
 }
}
迭代
import java.util.*;
import java.io.*;
public class fib {
 static int fib[]=new int[30];
 public static void main(String args[]){
  int n;
  Scanner cin=new Scanner(System.in);
  n=cin.nextInt();
  fib[1]=0;fib[2]=1;
  for(int i=3;i<=n;i++)
   fib[i]=fib[i-1]+fib[i-2];
  for(int i=1;i<=n;i++)
  System.out.println(fib[n]);
 }
}

(1)你的具体问题是什么,请明确你的问题。
(2)之前你提问很多,但是为什么从来没有采纳。麻烦及时采纳回答。

【以下回答由 GPT 生成】

可以对代码进行如下优化和改进:

public class Fibonacci {
    public static void main(String[] args) {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        System.out.println("请输入要计算的斐波那契数列的项数:");
        int n = scanner.nextInt();
        int result = calculateFibonacci(n);
        System.out.println("斐波那契数列第" + n + "项为:" + result);
    }

    public static int calculateFibonacci(int n) {
        if (n <= 0) {
            throw new IllegalArgumentException("项数必须大于0");
        }
        if (n == 1 || n == 2) {
            return 1;
        }
        int prev = 1;
        int curr = 1;
        for (int i = 3; i <= n; i++) {
            int temp = curr;
            curr = curr + prev;
            prev = temp;
        }
        return curr;
    }
}

优化提示: 1. 添加了对输入值的合法性检查,如果输入的项数小于等于0,抛出异常。 2. 使用循环替代递归计算斐波那契数列的值,通过维护两个变量prev和curr分别保存当前项和前一项的值,依次计算第n项的值。这种方式比递归更高效,避免了重复计算。 3. 修改变量名,使其更清晰易懂。 4. 提示用户输入项数。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^