admin 管理员组

文章数量: 887007

杭电1297 Children’s Queue

 我对此题进行大致的翻译:
 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]);}}}
}


本文标签: 杭电1297 Children’s Queue