早教吧作业答案频道 -->其他-->
斐波那契数列java老师上周布置java基础课的作业、要我们把数列(1,1,2,3,5,8,13,21....)用java代码弄出来,一共要弄到第二十项。由于我们刚上基础、不怎么熟悉Java、希望回答者能用我看得懂
题目详情
斐波那契数列 java
老师上周布置java基础课的作业、要我们把数列(1,1,2,3,5,8,13,21....)用java代码弄出来,一共要弄到第二十项。由于我们刚上基础、不怎么熟悉Java、希望回答者能用我看得懂的方法写出。
老师上周布置java基础课的作业、要我们把数列(1,1,2,3,5,8,13,21....)用java代码弄出来,一共要弄到第二十项。由于我们刚上基础、不怎么熟悉Java、希望回答者能用我看得懂的方法写出。
▼优质解答
答案和解析
//这里采用两种方法实现该数列
//第一种方法:用递归调用相加,实现简单,但效率极低
//第二种方法:比第一种略显复杂,但效率高
//------------------------------------------------------------
import java.util.Scanner;
public class Fibonacci {
//方法1:递归方式
public static long getFibonacci1(long count){
if(count<=1){
return 1;
}
return getFibonacci1(count-1) + getFibonacci1(count-2);//递归调用
}
//方法2:非递归方式,复杂一点,但效率比方法1高
public static long getFibonacci2(long count){
if(count<=1){
return 1;
}
long temp = 0;
long prev = 1;
long next = 1;
for (long i = 2; i <=count; i++) {
temp = prev+next;
prev = next;
next = temp;
}
return temp;
}
public static void main(String[] args) {
System.out.println("请输入你要列出的项数,以回车结束:");
//控制台输入
Scanner s = new Scanner(System.in);
//输入的项数
int inputNum = s.nextInt();
System.out.println("得出斐波那契数列前"+inputNum+"项如下:");
for (long i = 0; i < inputNum; i++) {
//方式1
//System.out.prlong(getFibonacci1(i)+" ");
//方式2
System.out.print(getFibonacci2(i)+" ");
}
}
}
//第一种方法:用递归调用相加,实现简单,但效率极低
//第二种方法:比第一种略显复杂,但效率高
//------------------------------------------------------------
import java.util.Scanner;
public class Fibonacci {
//方法1:递归方式
public static long getFibonacci1(long count){
if(count<=1){
return 1;
}
return getFibonacci1(count-1) + getFibonacci1(count-2);//递归调用
}
//方法2:非递归方式,复杂一点,但效率比方法1高
public static long getFibonacci2(long count){
if(count<=1){
return 1;
}
long temp = 0;
long prev = 1;
long next = 1;
for (long i = 2; i <=count; i++) {
temp = prev+next;
prev = next;
next = temp;
}
return temp;
}
public static void main(String[] args) {
System.out.println("请输入你要列出的项数,以回车结束:");
//控制台输入
Scanner s = new Scanner(System.in);
//输入的项数
int inputNum = s.nextInt();
System.out.println("得出斐波那契数列前"+inputNum+"项如下:");
for (long i = 0; i < inputNum; i++) {
//方式1
//System.out.prlong(getFibonacci1(i)+" ");
//方式2
System.out.print(getFibonacci2(i)+" ");
}
}
}
看了 斐波那契数列java老师上周...的网友还看了以下:
已知集合A={x︱0<ax+1≤5},集合B={x︱-1/2<x≤2}.(1)若A包含于B,求实数 2020-04-05 …
casio计算器被我弄成这样了怎么弄好a一加一等于2、000000乘10的零次方 2020-05-13 …
excelIF函数多条件怎么用?要求:当3%≤A≤5%,X=B*0.02;当5%<A≤8%,X=B 2020-05-17 …
(a+1)(a^2+1)(a^4+1)(a^8+1)(a^16+1)=(a-1)[(a+1)(a^ 2020-05-22 …
李明用160粒大豆子种子作发芽试验,结果有8粒大豆没有发芽.发芽率的正确算式是什么?A.8/10× 2020-05-22 …
如果a:b=8:3,那么a=8,b=3..(判断对错) 2020-06-11 …
甲袋有a千克大米,乙袋有b千克大米,如果从甲袋拿出8千克放入乙袋,那么甲、乙两袋质量相等.列成等式 2020-07-08 …
z=a+8-ai/2,a+8=0,a≠0,a=-8,依据下列题?复数z=a+2i/1+i+(3-i 2020-08-01 …
1)√x-2=x-222)x^2+6x+9将这算式弄成a(x-h)^2+k3)v(x)=X^4+2X 2020-12-05 …
给画线字选择正确的解释,将序号写在括号里。弄:A.做;办B.设法取得C.耍;玩弄D.手拿着、摆弄着或 2020-12-17 …