求fibonacci数列第100项的值(Java实现)

4. 求fibonacci数列第100项的值。fibonacci数列的第一项的值为1,第二项的值也为1,第三项以后的

值为其前两项的和。要求使用循环和递归的方法来实现。

循环实现:

	static	public void loop(){
		BigInteger temp1 = new BigInteger("1");
		BigInteger temp2 = new BigInteger("1");
		for(int i=1;i<50;i++){
			temp1 = temp1.add(temp2);
			temp2 = temp1.add(temp2);
		}
		System.out.println(temp2);			
	}
递归实现:

static public void recursion(BigInteger num1,BigInteger num2,int count){
		count++;
		if(count != 50){
			 recursion(num1.add(num2),num1.add(num2).add(num2),count);
		}else{
			System.out.println(num2);
		}
	}
主函数调用:

public class Fibonacci {
	static	public void loop(){
 		***			
	}
	
	static public void recursion(BigInteger num1,BigInteger num2,int count){
 		***
	}
	static public void main(String args[]){
		BigInteger num1 = new BigInteger("1");
		BigInteger num2 = new BigInteger("1");
		int count= 0;
		loop();
		recursion(num1,num2,0);
	}
	
}
问题求fibonacci数列第100项的值,在实现过程中我们通过初步估计使用int型数据类型一定是无法正确表示最终的结果的。所以我们使用Java类库为我们提供的BigInteger类型。至于BigInteger的具体使用,读者可以自行查找相关资料。

本博由大连理工大学软件学院CSDN高校俱乐部原创,如需转载请注明。

欢迎广大读者关注大连理工大学软件学院CSDN高校俱乐部,

大连理工大学软件学院CSDN高校俱乐部隶属于大连理工大学软件学院OurEDA创新实验室,

OurEDA创新实验室目前暂分为移动创新实践部和嵌入式创新实践部,欢迎对创新实践感兴趣的同学加入。

OurEDA创新实验室主页:www.OurEDA.cn








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值