用java 求第n个Fibonacci数的递归和迭代算法

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:09:45
1.求第n个Fibonacci数的递归和迭代算法 2. 二分搜索的递归和迭代算法
都是要求用java 写的
谢谢
顺便问一下 迭代是什么意思?与递归的本质区别什么?

1. Fibonacci
import javax.swing.JOptionPane;

public class Test {

public static void main(String args[]) {
int i,n,m;
Test f=new Test();
String s=JOptionPane.showInputDialog(null,"please input n:\n");
n=Integer.parseInt(s);
for(i=0;i<=n;i++)
{
m=f.f2(i);
System.out.println(m);
}
}

/*递归*/
int f1(int n)
{
if(n==0)
return 1;
else if(n==1)
return 1;
else if(n>1)
return f1(n-1)+f1(n-2);
else
JOptionPane.showMessageDialog(null,"方程无解!");
return 0;
}

//迭代
public int f2(int n)
{
int n1 = 1;
int n2 = 1;
int s = 0;
if(n==1||n==2) return n1;
for(int i=3;i<=n;i++)
{
s=n1+n2;
n1=n2;
n2=s;
}
return s;
}
}

2.二分搜索
public class Main {

public static void main(Strin