递归
import java.util.*;
public class Main{
public static int fun(int q) {
if(q<0) return 0;
else if(q==0) return 1;
else if(q==1) return 1;
else if(q==2) return 2;
else return fun(q-1)+fun(q-2)+fun(q-3);
}
public static void main(String arg[]){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
System.out.print(fun(n));
}
}
递归数据最大为40
拓展:记忆化搜索
import java.util.*;
public class Main{
static int[] mem =new int[1000];
public static int fun(int q) {
if(mem[q]!=0){
return mem[q];
}
else{
if(q<0) return 0;
else{
mem[q]=fun(q-1)+fun(q-2)+fun(q-3);
return mem[q];
}
}
}
public static void main(String arg[]){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
mem[0]=1;
mem[1]=1;
mem[2]=2;
System.out.print(fun(n));
}
}