曾经沧海难为水,除却巫山不是云
点赞再看,养成习惯
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
Fibonacci数列:1,1,2,3,5,8,…
数列满足递归公式:F1=1,F2+=1,Fn=Fn-1 + Fn-2
递归算法
import java.util.*;
class Fibonacci {
public static void main(String[] args) {
System.out.println("你想知道Fibonacci数列第几项的值?");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println("数列的第n项的值为:"+f(n));
}
public static int f(int n) {
if(n<=0) {
System.out.println("输入的 n 应该大于0");
return -1;
}else if(n==1||n==2) {
return 1;
}else {
return f(n-1)+f(n-2); //关键代码
}
}
}