递归算法——求取斐波那契数列(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);

        }



    }

}

 

你可能感兴趣的:(算法)