/*
题目描述
菲波拉契数列的定义为:第一和第二个数均为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);
}
}
菲波拉契数列的定义为:第一和第二个数均为1,以后每个数为前两个数之和。因此菲波拉契数列前几个...
最新推荐文章于 2022-09-30 20:56:23 发布