`
bobzone
  • 浏览: 26074 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

菲波拉契数列的定义为:第一和第二个数均为1,以后每个数为前两个数之和。因此菲波拉契数列前几个

阅读更多
/*
题目描述
菲波拉契数列的定义为:第一和第二个数均为1,以后每个数为前两个数之和。因此菲波拉契数列前几个
 为:1,1,2,3,5,8,13,21,34......以此类推。问题:请用java编程语言写两个函数f1与f2,各接受一个参数n,
 返回菲波拉契数列第n位的值。要求f1使用递归实现,f2使用循环实现,代码中写上简洁适当的注释。

输入描述
一个自然数

输出描述
用空格分隔的一个数列

输入样例
5

输出样例
1 1 2 3 5
 */

package exam1;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author Administrator
 */
public class Test5 {
    int a=1,temp,max;
    public int f1(int n){   //递归算法
        if(n<3) return 1;
        return f1(n-1)+f1(n-2);
    }

    public void  f2(int n){   //循环算法
        int a[]=new int[10000];
        a[1]=1;
        a[2]=1;
        for(int i=1;i<=n;i++ ){
            if(i>=3){
            a[i]=a[i-1]+a[i-2];
            }
            System.out.print(a[i]+" ");
        }

    }
    public void print(int n){
    {
       int sum=0;
       for(int i=1;i<n+1;i++){
             //sum+=f1(i);
             System.out.print(f1(i)+" ");
     }

    }
}
    public static void main(String[] args) {
        Test5 test = new Test5();
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        test.print(n);
        System.out.println();
        test.f2(n);
    }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics