递归算法——求取斐波那契数列(1)

import java.util.Scanner;

/**
 * Created by Administrator on 14-5-13.
 * 计算斐波那契数列
 *
 * Result M(Problem prob)
 {
 if (<problem can be solved easily>)
 return <easy solution>;
 // The problem cannot be solved easily.
 Problem smaller1 = <reduce problem to smaller problem>
 Result result1 = M(smaller1);
 Problem smaller2 = <reduce problem to smaller problem>
 Result result2 = M(smaller2);
 ...
 Result finalResult = <combine all results of smaller problem to solve large problem>
 return finalResult;
 }
 */
public class Fib {
    public static void main(String[] args){
        long startTime=System.currentTimeMillis();   //获取开始时间
        int number=0;
        System.out.println("please give the number:");
        Scanner scanner=new Scanner(System.in);
        String str=scanner.nextLine();
        try{
            number=Integer.parseInt(str);
        }catch(NumberFormatException e){
            System.out.println("输入有误");
        }

        System.out.println(fac(number));
        long endTime=System.currentTimeMillis(); //获取结束时间
        System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
    }
    public static int fac(int temp){
        if(temp<=2)
        {
            return 1;
        }
        else {
            return fac(temp-1)+fac(temp-2);
        }

    }
}

 

posted @ 2014-07-14 09:48  冥草有心  阅读(530)  评论(0编辑  收藏  举报