-
总时间限制:
- 1000ms 内存限制:
- 70000kB
-
描述
-
有1*n的一个长方形,用一个1*1、1*2、1*3的骨牌铺满方格。例如n=3时为1*3的方格。此时用1*1、1*2、1*3的骨牌铺满方格,共有四种铺法。如图:
要求:输入N(0<=n<=30),输出铺法总数。
输入
- 输入仅一行,为正整数N(0<=n<=30)。 输出
- 输出铺法总数。 样例输入
-
3
样例输出
-
4
f[1]=1;f[2]=2;f[3]=4;f[4]=7;f[5]=13```
可以看出:f[i]=f[i-1]+f[i-2]+f[i-3];
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n>=0&&n<=30){
int num = f(n);
System.out.println(num);
}
}
public static int f(int n){
if(n==0){
return 0;
}
else if(n==1){
return 1;
}
else if(n==2){
return 2;
}
else if(n==3){
return 4;
}else{
return f(n-1)+f(n-2)+f(n-3);
}
}
}