斐波拉契数列进行编译,采用三种不同的方法实现,迭代,递归,数组

本文介绍三种不同的编程方法来实现斐波那契数列:数组方式、迭代方式及递归方式。每种方法均有详细的代码示例,有助于读者理解不同算法的特点。

数组的方式

package santiago;

import java.util.Scanner;

/**
 * 这里是利用数组的方式求斐波拉契数列
 * @author santiago
 *
 */
public class ArrFi {
public static int i;
private void fo(int m) {
	int [] a = new int[10];
	a[0] = 1;
	a[1] = 1;
	for (i = 2; i <= m; i++) {
		if(i==2||i==1){
		a[i] = 1;
		}else{
		a[i] = a[i-1]+a[i-2];
		}
	}
	System.out.println(a[i-1]);
}	
public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	System.out.println("请输入你想求第几个月的兔子!");
	int num = in.nextInt();
	ArrFi b = new ArrFi();
	if(num>0){
		b.fo(num);
	}else{
		System.out.println("请输入大于0 的数");
	}
}
}


迭代的方式


package santiago;

import java.util.Scanner;
/**
 * 这里是按照迭代的方式求斐波拉契数列
 * @author santiago
 *
 */
public class NorFi {
private void sum(int m) {
	int s = 1;
	int s1 = 1;
	int s2 = 0;
	if(m==0||m==1){
		s = 1;
	}else{
		for (int i = 2; i <= m+1; i++) {
			s = s1 + s2;
			s1=s2;
			s2=s;
		}
	}
	System.out.println(s);
}

public static void main(String[] args) {
	Scanner in = new Scanner(System.in);
	System.out.println("请输入你求第几个月的兔子!");
	int m = in.nextInt();
	NorFi a =new NorFi();
	a.sum(m);
}
}


递归的方式

package santiago;

import java.util.Scanner;
/**
 *  1 1 2 3 5 ……采用的是递归的方式
 * @author santiago
 *
 */
public class SumFi {
	private int f(int i) {
		if(i==1||i==2){
			return 1;
		}else{
			return f(i-1)+f(i-2);
		}
	}
	public static void main(String[] args) {
		SumFi a = new SumFi();
		System.out.println("你想求第几个月的兔子");
		Scanner in = new Scanner(System.in);
		int num = in.nextInt();
		if(num>0){
			System.out.println(a.f(num));
		}else{
			System.out.println("请输入大于0的整数");
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值