java斐那波契数列
⑴ java语言用数组输出Fibonacci数列:1 1 2 3 5 8 13....前20
方法如下供参考:
publicclassTest{
publicstaticvoidmain(String[]args){
intintArrary[]=newint[20];
intArrary[0]=intArrary[1]=1;
for(inti=2;i<intArrary.length;i++){
intArrary[i]=intArrary[i-1]+intArrary[i-2];
}
System.out.println("Fibonacci数列:11235813....前20如下所示:");
for(inti=0;i<intArrary.length;i++){
if(i%5==0)
System.out.println();
System.out.print(intArrary[i]+" ");
}
}
}
⑵ java 斐波那契数列
importjava.util.Scanner;
/**
*斐波那契数列:第0项是0,第1项是第一个1。
这个数列从第三项开始,每一项都等于前两项之和
*@authoryoung
*
*/
publicclassFei{
publicstaticvoidfunc(intn){
if(n<3){
System.out.println("0,1");
}elseif(n>3){
inta=0,b=1,c=0;
System.out.print(a+""+b+"");
for(inti=3;i<=n;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"");
}
}elseif(n<0){
System.out.println("输入数字不符合要求");
}
}
publicstaticvoidmain(String[]args){
Feif=newFei();
Scannerinput=newScanner(System.in);
System.out.print("请输入斐波那契数列的列数n,按ENTER:");
intnum=input.nextInt();
System.out.println("斐波那契数列为:");
func(num);
}
}
正确的代码
⑶ JAVA程序的费波纳茨数列是什么原理
数学上,斐波那契数列是以递归的方法来定义:
* F(0) = 0
* F(1) = 1
* F(n) = F(n - 1) + F(n - 2)
就是说从第三个数字开始,每一个数等于前两项的和,所以
A1输入0 A2输入1
A3输入=A1+A2
⑷ 用JAVA数组来求斐波那契数列前20项: 1 1 2 3 5 8 ….
publicclassDemo{
publicstaticvoidmain(String[]args){
intn=20;
intsum=0;
for(inti=1;i<=n;i++){
System.out.print(fibo(i)+" ");
sum+=fibo(i);
}
System.out.println(" 菲波那契数列的前20项和为:"+sum);
}
privatestaticintfibo(intn){
if(n==1)
return1;
if(n==2)
return1;
returnfibo(n-1)+fibo(n-2);
}
}
数组法:
publicclassDemo{
publicstaticvoidmain(String[]args){
int[]array=newint[20];
array[0]=1;
array[1]=1;
intsum=0;
for(inti=2;i<array.length;i++){
array[i]=array[i-1]+array[i-2];
}
//遍历数组并累计
for(inti=0;i<array.length;i++){
sum+=array[i];
}
//输出和
System.out.println(" 菲波那契数列的前20项和为:"+sum);
}
}
⑸ 如何用java语言输出斐波那契数列
Java编程:三种方法实现斐波那契数列
其一方法:
publicclassDemo2{
//定义三个变量方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a+" "+b+" ");
//因为前面还有两个1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+" ");
if((i+2)%5==0)
System.out.println();
}
}
}
java编程:三种方法实现斐波那契数列
其二方法:
publicclassDemo3{
//定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+" ");
}
}
}
Java编程:三种方法实现斐波那契数列
其三方法:
publicclassDemo4{
//使用递归方法
privatestaticintgetFibo(inti){
if(i==1||i==2)
return1;
else
returngetFibo(i-1)+getFibo(i-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契数列的前20项为:");
for(intj=1;j<=20;j++){
System.out.print(getFibo(j)+" ");
if(j%5==0)
System.out.println();
}
}
}
同一道题用各种不同的思路去思考解决,也是对知识综合运用的锻炼。
⑹ 用JAVA表示斐波那契数列 急急急!!!!
publicclassFibonacci{
//能够被显示的最大项
privatestaticfinallongMAX_TERM_VALUE=10000;
publicvoidrun(){
longfibonacci_1=0L;
longfibonacci=1L;
System.out.println(fibonacci_1);
while(fibonacci<MAX_TERM_VALUE){
System.out.println(fibonacci);
longtemp=fibonacci_1+fibonacci;
fibonacci_1=fibonacci;
fibonacci=temp;
}
}
publicstaticvoidmain(String[]args){
newFibonacci().run();
}
}
⑺ Java实现斐波那契数列
public class Demo{
public static void main(String[] args) {
int fei[] = new int[25];
fei[0] = 0;
fei[1] = 1;
for(int i=2;i<fei.length;i++){
fei[i] = fei[i-1] + fei[i-2];
}
for(int i=0;i<fei.length;i++){
System.out.print(fei[i]+" ");
}
}
}
⑻ 如何用java语言输出斐波那契数列
具体代码如下:
public class Test {
public int fib(int n)
{
if(n==1 || n==2)//当n=1或2时 返回1
{
return 1;
}
return fib(n-1)+fib(n-2);//返回前两项的和
}
public static void main(String[] args) {
Test t = new Test();
for (int i = 1; i <= 15; i++) {
System.out.printf ("fib(%d)=%d ",i,t.fib(i));
}
}
}
运行结果:
fib(1)=1
fib(2)=1
fib(3)=2
fib(4)=3
fib(5)=5
fib(6)=8
fib(7)=13
fib(8)=21
fib(9)=34
fib(10)=55
fib(11)=89
fib(12)=144
fib(13)=233
fib(14)=377
fib(15)=610
⑼ java语言解决斐波那契数列问题
递归函数的定义:
递归函数即自调用函数,在函数体内直接或间接的调用自己,即函数的嵌套是函数本身。
递归方式:递归调用有直接递归和间接递归两种方式。
直接递归:在函数中出现调用函数本身。
下面代码求斐波那契数列第n项,斐波那契数列第一和第二项是1,后面每一项是前两项之和,即1、1、2、3、5、8、13
...。
public
class
test
{
public
static
void
main(string
args[])
{
int
x1
=
1;
int
sum
=
0;
int
n
=
7;
for
(int
i
=
1;
i
<=
n;
i++)
{
x1
=
func(i);
sum
=
sum
+
x1;
}
system.out.println("sum="
+
sum);
}
public
static
int
func(int
x)
{
if
(x
>
2)
return
(func(x
-
1)
+
func(x
-
2));
else
return
1;
}
}
间接递归:指函数中调用了其他函数,而该其他函数有调用了本函数。
用间接递归来计算上述斐波那契数列。
程序代码:
public
class
test
{
public
static
void
main(string
args[])
{
int
x1
=
1;
int
sum
=
0;
int
n
=
7;
for
(int
i
=
1;
i
<=
n;
i++)
{
x1
=
func1(i);
sum
=
sum
+
x1;
}
system.out.println("sum="
+
sum);
}
public
static
int
func1(int
a){
int
b;
b=func2(a);
return
b;
}
public
static
int
func2(int
b)
{
if
(b>
2)
return
(func1(b
-
1)
+
func1(b
-
2));
else
return
1;
}
}
⑽ java实现斐波那契数列的几种方法时间效率问
这道兔子题的实质就是斐波那契数列: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1 1 2 3 5 8 13 ……
方案一:递归算法实现
public static long fib(int n){
if(n <= 1){
return 1;
}else{
return fib(n - 1) + fib(n - 2);
}
}
初看起来,使用递归算法是最简洁的。可是,如果将程序编码病在n值为40左右时运行那么这个程序让人感到效率低的吓人。n>4时,其时间效率为fib(N)>=(3/2)的n次方,这个程序运行的时间以指数的速度增长。这大概是最坏的情况。
方案二:数组方式
public static int fib2(int n) {
int[] array = new int[n];
array[0] = array[1] =1;
for (int i = 0; i < array.length; i++) {
if (i == 0 || i == 1) {
return array[i];
}else {
array[i] = array[i-1] +array[i-2];
}
} return array[i];
}
数组方式的好处是只是用了一个for循环,运行时间可以显着降低。