(一)菲波那切数列java实现
(1)递归(Recursion)实现代码:输入47,口秒32出结果
import java.util.Scanner;
public class FbnqRecursion {
static Scanner sc = new Scanner(System.in);// 定义全局console输入接口
public static void main(String[] args) {// 主函数
// TODO Auto-generated method stub
while (true) {// 提供持续的计算能力
int xs = input();
System.out.println("要求的项位值:" + countnn(xs));
}
}
public static int input() {// 递归处理输入错误
int i = 0;
System.out.print("请输入要求的项位:");
// 处理非自然数及特殊字符输入
try {
i = sc.nextInt();
} catch (Exception e) {
System.out.println("您的输入非法,请重新输入!");
sc = new Scanner(System.in);//此处若不重置对象,会导致异常
return input();
}
//处理自然数输入
if (i < 1) {// 自然数从0开始,项位数从1开始
System.out.println("项位数为从1开始的自然数,您的输入非法,请重新输入!");
return input();
} else if (i >= 1 && i < 48) {
return i - 1;
} else {
System.out.println("因java语言中对整型数据的特性(最大整数可表达为2147483647),最多可计算第47项,您的输入已经越界,请重新输入!");
return input();
}
}
public static int countnn(int n) {// 递归计算数列项
if (n ==