老调重弹,java基础中关于斐波那契数列的算法问题,主要用到的知识点是递归方法的使用:
import java.util.*;
public class Test2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print(“请输入求斐波那契数列第n项的值:”);
int n = sc.nextInt();
try {
System.out.println(“第”+n+”项上对应的斐波那契数是”+method(n));
} catch (Exception e) {
e.printStackTrace();
}
}
public static int method(int n) throws Exception {
// 分析可知,n>0并且n=1和n=2时都是1,n>2时值为前两项的值之和,可以用递归来做
if (n > 2 & n <= 100 ) {
return method(n - 1) + method(n - 2);
} else if (n == 1 | n == 2) {
return 1;
} else {
throw new Exception(“请输入0到100之间的数”);
}
}
}
这个程序求的是1到100之间的斐波那契数列的问题.主要是要熟练递归方法的使用.