题目描述
背景
"如果两个人相差一秒出生, 其中一个是小孩, 那么另一个也是小孩. 由此可以推论, 所有人均是小孩."
问题
数计系是一个由N个人组成的大家庭, 分别为1, 2, 3, ..., N岁.
有一次系主任想为全系拍张合照. 需要所有学生站成一排.
起先他想按他们的岁数从小到大安排, 但后来又觉得这样不自然.
于是他建议按如下方案站排:
1岁的在最左边.
每相邻两人不得相差超过2岁.
这样学生的岁数看起来显得很平均(25岁和27岁的人差别很难看出).
存在多种方案满足此要求.
摄影师不想违反系主任的意愿, 就为每种可能的安排分别拍了一张照片.
输入描述
整数N, 1<=N<=55.
输出描述
所拍照片张数.
样例输入
4
样例输出
4
提示
若N=4, 则有4种可能的安排: (1,2,3,4), (1,2,4,3), (1,3,2,4) and (1,3,4,2).
源代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
int []a = new int [56];
a[0]=0;
a[1]=1;
a[2]=1;
a[3]=2;
a[4]=0;
for(int i=4;i<=55;i++) {
a[i]=a[i-1]+a[i-3]+1;
}
while(scanner.hasNext()) {
System.out.println(a[scanner.nextInt()]);
}
}
}