请使用循环和递归分别实现斐波那契数列
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)+" ");
}
}
}