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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 914360849 中级黑马   /  2015-5-29 21:38  /  327 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;
/*
* 4:求斐波那契数列第n项,n<30,斐波那契数列前10项为
*  1,1,2,3,5,8,13,21,34,55
*
*/
import java.util.*;
public class Test4 {
public static void main(String[] args) {
  // TODO Auto-generated method stub
  //提示用户输入数字
  System.out.println("请输入斐波那契数列第n项,n<30:");
  //接收键盘录入的整数,
   Scanner sc = new Scanner(System.in);
         int i = sc.nextInt();
         //调用方法,返回斐波那契数
   int s=feiShu(i);
    System.out.println(s);
}
//定义方法,求斐波那契数
   static int feiShu(int i){

  if(i==1||i==2)
   return 1;
  return feiShu(i-1)+feiShu(i-2);
}
}

4 个回复

正序浏览
叶燕希 发表于 2015-5-29 21:56
public class Fei {
    public static void func(int n) {
        if (n < 3) {

赞同,for循环运行效率较高
回复 使用道具 举报
914360849 发表于 2015-5-29 21:52
还有别的方法可以做出来吗

public class Fei {
    public static void func(int n) {
        if (n < 3) {
            System.out.println("0,1");
        } else if (n > 3) {
            int a=0, b=1, c=0;
              System.out.print(a + "    " + b + "    ");
              for (int i = 3; i <= n; i++) {
               c = a + b;
               a = b;
               b = c;

要是我的话我可能会这么写
               System.out.print(c + "    ");
              }
        } else if (n < 0) {
            System.out.println("输入数字不符合要求");
        }
回复 使用道具 举报

还有别的方法可以做出来吗
回复 使用道具 举报
有什么问题吗?                                                  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马