十三 、递归的java实现

任务一、递归初体验:

1.打印hello

2.递归实现循环

源代码:

public class TasteRecursion
{
public static void display() //循环打印hello,Beauty
{
System.out.println("hello,Beauty!");
display();
}

public static void cycle(int n)
{
if(n == 0)
return;
else
{
System.out.println(n);
n--;
cycle(n);
}
}


public static void main(String[] args) {
//TasteRecursion.display();
TasteRecursion.cycle(5);
}
}

实现效果图:

任务二:打印数字三角形

原理图:

源代码(包括一般的循环实现和递归实现):

public class Triangle {

public static void cycleSolve(int n) //一般循环实现
{
int total =0;
for(int i=1;i<=n;i++)
{
total =total+i;
}
System.out.println(total);
}

public static int recursionSolve(int n) //递归实现三角形
{
if(n == 1)
return 1;
else
{
return n + recursionSolve(n-1);
}
}



public static void main(String[] args) {
Triangle.cycleSolve(100);
System.out.println(Triangle.recursionSolve(100));
}
}

任务三:递归实现斐布拉契数列:

原理图:

源代码:

public class Feibo {
public static int FeiboCycle(int n) //用递归实现斐布拉契数列
{
if(n == 1)
return 0;
else if(n == 2)
return 1;
else
{
return FeiboCycle(n-1) + FeiboCycle(n-2);
}
}

public static void main(String[] args)
{
System.out.println(Feibo.FeiboCycle(5));
}
}

实现效果图:

原文地址:https://www.cnblogs.com/fyz666/p/8468759.html