您的位置:首页 > 其它

求解斐波那契数列的几种方法

2015-05-07 14:27 316 查看
请使用循环和递归分别实现斐波那契数列

1 1 2 3 5 8 13 ...

第一种(通用循环方法)

import java.util.Scanner;

public class Hello {

public static void main(String args[]){

int i = 1;

int j = 1;

int temp = 0;

int sum = 0;

System.out.println("Please input(n):");

Scanner s = new Scanner(System.in);

int n = s.nextInt();

System.out.print("1"+" "+"1"+" ");

for(temp = 0;temp < n;temp++)

{

sum = i + j;

j = i;

i = sum;

System.out.print(sum+" ");

}

}

}

第二种(数组递归法)

import java.util.Scanner;

public class Hello {

public static void main(String args[]){

int sum[] = new int[30];

sum[0] = sum[1] = 1;

System.out.println("Please input(n):");

Scanner s = new Scanner(System.in);

int n = s.nextInt();

int i;

for(i = 2;i < 30;i++)

{

sum[i] = sum[i-1]+sum[i-2];

}

for(i = 0; i < n;i++)

{

System.out.print(sum[i]+" ");

}

}

}

第三种(函数递归法)

import java.util.Scanner;

public class Hello {

static int sum(int n){

if(n == 0 || n == 1)

{

return 1;

}

return sum(n-1) + sum(n-2);

}

public static void main(String args[]){

System.out.println("Please input(n):");

Scanner s = new Scanner(System.in);

int n = s.nextInt();

int i;

System.out.print("1"+" "+"1"+" ");

for(i = 2;i < n;i++)

{

System.out.print(sum(i)+" ");

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: