黑马程序员技术交流社区

标题: 基础测试题-求斐波那契数列第n项,n<30 [打印本页]

作者: 李云贵    时间: 2014-7-19 14:13
标题: 基础测试题-求斐波那契数列第n项,n<30
import java.util.Scanner;

/*
* 第二题:求斐波那契数列第n项,n<30
*/
public class Test2{
       
        public static void main(String args[]){
                //定义一个整数变量,记录第n项的值
                int fn;
                //创建一个键盘扫描类对象
                Scanner input = new Scanner(System.in);
                //输出提示
                System.out.println("请输入一个小于30整数");
                //输入整数
                int n = input.nextInt();
                //关闭input
                input.close();
                //判断输入是否符合 n<30
                if(n<=0||n>=30){
                        System.out.println("不正确的输入");
                        return;
                }
                //调用求斐波那契第n项的函数
                fn=fb(n);
                //输出结果
                System.out.printf("斐波那契数列第 %d 项为 %d", n,fn);
        }
       
        //递归函数求斐波那契第n项
        public static int fb(int n){
               
                //前两项都是1
                if(n<3) return 1;
                //递归调用,返回前两项的和
                return fb(n-2)+fb(n-1);
        }
}


作者: .Mч┞尛__洋    时间: 2014-7-19 19:14
你还可以尝试一下 大数求斐波那契数列   杭电ACM 上面的  
作者: M单色调    时间: 2014-7-19 21:48
递归。我考这道题的时候用的是循环。
作者: DSY    时间: 2014-7-19 23:28
我也用的for循环   不知道哪种更效率,虽然递归代码很简洁
作者: 止询初衷    时间: 2014-7-19 23:52
这是个什么数????????
作者: 小乖乖灬浩歌    时间: 2014-7-19 23:59
递归的效率一般都慢  但是现代的编译器会进行优化  最终效果比原生会  比循环低




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