题目描述

背景
"如果两个人相差一秒出生, 其中一个是小孩, 那么另一个也是小孩. 由此可以推论, 所有人均是小孩."

问题
数计系是一个由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()]);
            }
        }
}

最后修改:2022 年 04 月 23 日
如果觉得我的文章对你有用,请随意赞赏