杭电1297 Children’s Queue

来源:互联网 发布:flash cs6 mac 编辑:程序博客网 时间:2024/06/07 01:51
 我对此题进行大致的翻译:
 PHT学校有许多学生。有一天,校长,他的名字叫PigHeader希望所有学生站在一条线。他规定,女孩不能在单独一个人站着
 换句话说,队列中要么全都是男孩,要么女孩不只有一个并肩站着,例如当n=4(表示孩子的数量)有如下排列方式
 FFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMM
 这里的F表示女孩,M表示男孩,队列的排列方式总数满足校长需要的,有7种。

 你能写一个程序来计算孩子们的排列方式种数吗?


import java.util.Scanner;import java.math.BigInteger;public class Main2 {    public static void main(String[] args) {        Scanner in = new Scanner(System.in);        int a;        BigInteger[] b = new BigInteger[1010];        b[1] = BigInteger.ONE;        b[2] = BigInteger.valueOf(2);        b[3] = BigInteger.valueOf(4);        b[4] = BigInteger.valueOf(7);        while (in.hasNext()) {            a = in.nextInt();            if (a < 5) {                System.out.println(b[a]);            } else {                for (int i = 5; i <= a; i++) {                    b[i] = b[i - 1].add(b[i - 2]).add(b[i - 4]);                }                System.out.println(b[a]);            }        }    }}


1 0
原创粉丝点击