展开全部
1、差别还是比较大的,或许,循环可以实现的递归也可以实现,32313133353236313431303231363533e58685e5aeb931333365663462但递归较容易实现的,循环就很难
2、根据求斐波那契数列来说package algorithm.cxg.Fibonacci;
import java.util.Scanner;
/**
* 实现斐波拉切函数
* 斐波拉切数列:
* 由0和1开始,之后的费波那西系数就由之前的两数相加,
* 数列形式如下:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946,………………
* 在数学上,是以递归的方法来定义:
* F_0=0
* F_1=1
* F_n = F_{n-1}+ F_{n-2}
* 实现需求:输入序号n返回得到对应费波那西数
* @author admin
*
*/
public class Fibonacci {
public static void main(String[] args) {
/*//定义数列的前两项
int a=0,b=1;
//定义第n项
Scanner scan = new Scanner(System.in);
System.out.println("请输入斐波拉切数列的30项以内第n项:");
int n = scan.nextInt();
//输出
System.out.println("斐波那契数列30项以内的第n项的和为:");
System.out.print(a+"\n"+b+"\n");
//根据数列得出的函数循环计算
for (int i = 0; i <= 30 ; i++) {
n=a+b;
a=b;
b=n;
System.out.println(n+"\t");
}*/
System.out.println("斐波那契数列30项以内的第n项的和为:");
for (int j = 1; j <= 20; j++) {
System.out.print(getFibonacco(j) + "\t");
}
}
//递归函数实现数列
public static int getFibonacco(int i) {
if (i==1) {
return 0;
} else if (i==1 || i==2) {
return 1;
} else {
return getFibonacco(i-1)+getFibonacco(i-2);
}
}
}
3、所谓递归,程序调用自身的编程技巧称为递归( recursion),循环是什么?在一定的条件下重复的执行,这个‘固定’的重复叫循环,你思考如果循环,怎么求斐波那契数列?