java编程:用非递归调用的方法解决Fibonacci数列,求Fibonacci数列的第四十项

 我来答
偑oO晓得
2011-09-14 · TA获得超过375个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:253万
展开全部
public class Fibonacci1 {

public static long fib(int n) {
long f1 = 1, f2 = 1;
long m = 0;
if(n <= 2) {
return 1;
} else {
for(int i = 3; i <= n; i++) {
m = f1 + f2;
f2 = f1;
f1 = m;
}
return m;
}
}
public static void main(String [] args) {
long m = fib(40);
System.out.println("Fibonacci(40) is " + m);
}
}

参考资料: http://blog.sina.com.cn/s/blog_6b19f6700100mulq.html

youtiao143
2011-09-19 · 超过11用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:18.9万
展开全部
//写一小程序,非递归方法,可以输入一个参数,求出任意位Fibonacci数列
import java.util.Scanner;

public class Fibonacci {
public static void main(String[] args) {
int a=1 , b=1 , f=0 ;
System.out.println("请输入你要求的数列数:");
//获取一个输入
Scanner cin=new Scanner(System.in);
int m = cin.nextInt();
for(int i = 1; i < m-1; i++){
f = a + b;
a = b;
b = f;
}
System.out.println(f);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2011-09-14 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
利用循环来解决的:
public class Fibonacci {

public static void main(String[] args) {
int num = 40;
int[] ary = getFibonacci(num);

int fib40 = ary[ary.length - 1];
System.out.println("Fib(" + num + ") = " + fib40);
}

private static int[] getFibonacci(int num) {

final int[] ary = new int[num];

for(int i = 0; i < ary.length; i++){
if(i <= 1){
ary[i] = 1;
}else{
ary[i] = ary[i-1] + ary[i -2];
}
}

return ary;

}

}

-----------------------
Fib(40) = 102334155
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leoywh
2011-09-14 · 超过11用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:36.7万
展开全部
有递归你不用,你傻吗?
追问
汗 题目必须要用非递归
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式