package com.randy.test;
public class Demo {
public static void main(String[] args) {
// 1 1 2 3 5 8 11 依次递归
System.err.println("第30位的值是:"+calc_1(30));
// 0 2 5 7 14 26 47 依次递归
System.err.println("第28位的值是:"+calc_2(28));
}
//递归一
static int calc_1(int num){
int a=1,b=1,sum=0;
//从排除 a,b初始值 所以从2开始循环!
for(int i=2;i<num;i++){
sum=a+b;
a=b;
b=sum;
}
return sum;
}
//递归二
static int calc_2(int num){
int sum=0;
switch (num) {
case 1:
sum=0;
break;
case 2:
sum=2;
break;
case 3:
sum=5;
break;
default:
//n=(n-3)+(n-2)+(n-1);
sum=calc_2(num-3)+calc_2(num-2)+calc_2(num-1);
break;
}
return sum;
}
}
递归算法
最新推荐文章于 2023-06-17 20:58:01 发布