黑马程序员技术交流社区

标题: 斐波那契数之见解 [打印本页]

作者: 914360849    时间: 2015-5-29 21:38
标题: 斐波那契数之见解
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);
}
}


作者: 叶燕希    时间: 2015-5-29 21:48
有什么问题吗?                                                  
作者: 914360849    时间: 2015-5-29 21:52
叶燕希 发表于 2015-5-29 21:48
有什么问题吗?

还有别的方法可以做出来吗
作者: 叶燕希    时间: 2015-5-29 21:56
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("输入数字不符合要求");
        }

作者: 探索者    时间: 2015-5-29 22:06
叶燕希 发表于 2015-5-29 21:56
public class Fei {
    public static void func(int n) {
        if (n < 3) {

赞同,for循环运行效率较高




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2