递归的使用
自己调用自己本身
三角数的应用
三角数1,3,6,10,15…n
1、使用循环求解
public void test(int n){
int total=0;
while(n>0){
total=total+n;
n--;
}
}
2、使用递归
public void test(int n){
if(n==1){
return 1;
}else{
return test(n-1)+n;
}
}
斐波那契数列的应用
数列的第一项0,第二项为1,第n项为第n-1项加上第n-2项的和。
public class feiboshulie {
public static int feibo(int n){
if(n==1){
return 0;
}
if(n==2){
return 1;
}else {
return feibo(n-1)+feibo(n-2);
}
}
}
递归的高级应用(汉诺塔)
topN移动的盘子数,from起始的塔座,inter中间的塔座,to目标塔座
public class HanNuoTa {
public static void test(int topN,char from,char inter,char to) {
if (topN==1) {
System.out.println("盘子从"+from+"塔座到"+to+"塔座");
}else {
test(topN, from, to, inter);
System.out.println("盘子从"+from+"塔座到"+to+"塔座");
test(topN, inter, from, to);
}
}
}