求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55,
下面是我写的代码,请指导!
- package com.itheima;
- import java.io.IOException;
- import java.util.Scanner;
- /**
- * 第1题 求斐波那契数列第n项,n<30,斐波那契数列
- * 前10项为 1,1,2,3,5,8,13,21,34,55
- * */
- public class test1 {
- public static void main(String[] args) throws IOException {
- while (true) {
- System.out.println("你想要的斐波那契数列中的第几项的值?(必须是数字,否则会报异常!)");
- // 读取输入的数字
- Scanner scanner = new Scanner(System.in);
- String s = scanner.next();
- // 将字符串转换成数字
- int n = Integer.parseInt(s);
- if (n > 30) {
- System.out.println("您输入的数字超过30,请重新输入");
- } else {
- System.out.println("斐波那契数列中" + n+"的值是:"+getFibonacci(n));
- }
- }
- }
-
- public static int getFibonacci(int n) {
-
- //因为当为1或2时,值为1
- if(n==1||n==2)
- {
- return 1;
- }else {
-
- //递归调用自己的方法
- return getFibonacci(n - 1) + getFibonacci(n - 2);
- }
- }
- }
复制代码
|
|