A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


求斐波那契数列第n项,n<30,斐波那契数列前10项为 1,1,2,3,5,8,13,21,34,55,
下面是我写的代码,请指导!


  1. package com.itheima;

  2. import java.io.IOException;
  3. import java.util.Scanner;

  4. /**
  5. * 第1题 求斐波那契数列第n项,n<30,斐波那契数列
  6. * 前10项为 1,1,2,3,5,8,13,21,34,55
  7. * */
  8. public class test1 {

  9.         public static void main(String[] args) throws IOException {

  10.                 while (true) {
  11.                         System.out.println("你想要的斐波那契数列中的第几项的值?(必须是数字,否则会报异常!)");

  12.                         // 读取输入的数字
  13.                         Scanner scanner = new Scanner(System.in);
  14.                         String s = scanner.next();

  15.                         // 将字符串转换成数字
  16.                         int n = Integer.parseInt(s);

  17.                         if (n > 30) {
  18.                                 System.out.println("您输入的数字超过30,请重新输入");

  19.                         } else {

  20.                                 System.out.println("斐波那契数列中" + n+"的值是:"+getFibonacci(n));
  21.                         }

  22.                 }

  23.         }

  24.        
  25.         public static int getFibonacci(int n) {
  26.                
  27.                 //因为当为1或2时,值为1
  28.                 if(n==1||n==2)
  29.                 {
  30.                         return 1;
  31.                 }else {
  32.                
  33.                         //递归调用自己的方法
  34.                         return getFibonacci(n - 1) + getFibonacci(n - 2);
  35.                 }
  36.         }

  37. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马