开发者社区> 问答> 正文

java用递归算法计算并输出Fibonacci数列的前20项

用java写用递归算法计算并输出Fibonacci数列的前20项

展开
收起
知与谁同 2018-07-19 14:57:26 4099 0
3 条回答
写回答
取消 提交回答
  • 1 递归 自己调用自己
    2 以上就是真谛
    3 这个方法,被写烂了
    4 自己琢磨琢磨,有好处
    2019-07-17 22:54:43
    赞同 展开评论 打赏
  • import java.util.HashMap;

    public class Fib {
    static HashMap<Integer, Integer> results = new HashMap<Integer, Integer>();

    /**
     * F0 =0; <br>
     * F1=1 (n=1) <br>
     * F2=1 (n=2) <br>
     * Fn=Fn-1+Fn-2 (n>=3)
     */
    public static int fib(int i) {
    int result;
    if (i == 0) {
    result = 0;
    } else if (i == 1) {
    result = 1;
    } else {
    result = fib(i - 1) + fib(i - 2);
    }
    results.put(i, result);
    return result;
    }

    public static void main(String[] args) {
    int cnt = 20;
    Fib.fib(cnt);
    for (int i = 0; i < cnt; i++) {
    System.out.printf("fib(%d) = %d\n", i, results.get(i));
    }
    }
    }


    简单实现.

    递归是最差的算法.

    2019-07-17 22:54:43
    赞同 展开评论 打赏
  • 12535
    public class Demo{
    public static void main(String[] args) {
    for(int i=1;i<=20;i++){
    System.out.println(f(i));
    }
    }
    public static int f(int n){
    if(n == 1 || n ==2){
    return 1;
    }
    return f(n-2)+f(n-1);
    }
    }
    我自己写的,参考一下把

    -------------------------

    class g
    {
    public int f(int r)
    {
    if(r==1 || r==2)
    {
    return 1;
    }
    else
    {
    return f(r-1)+f(r-2);
    }
    }
    }
    public class z
    {
    public static void main(String args[])
    {
    g value=new g();
    System.out.println(value.f(20));
    }
    }

    2019-07-17 22:54:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载