求解斐波那契数列的几种方法
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)+" ");
}
}
}
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)+" ");
}
}
}
相关文章推荐
- 斐波那契数列的几种求解方法
- 几种计算机求解Fibonacci number的方法
- 3种方法求解斐波那契数列
- 目标函数极值求解的几种方法
- 3种方法求解斐波那契数列
- 方程求根的几种数值方法--求解x^3 - x -1 = 0
- 求解斐波那契数列的动态规划方法
- 求解逆序对数的几种方法
- 实现斐波那契数列的几种方法
- 动态规划的方法求解斐波那契数列
- C++输出斐波那契数列的几种方法
- 求解最大字段和的几种方法
- C++输出斐波那契数列的几种方法
- 3种方法求解斐波那契数列
- 斐波那契数列的递归与非递归求解方法&递归的优缺点
- 3种方法求解斐波那契数列
- 【算法02】3种方法求解斐波那契数列
- C#实现斐波那契数列的几种方法整理
- 方法输出C++输出斐波那契数列的几种方法
- 求解最大字段和的几种方法