我对此题进行大致的翻译:
PHT学校有许多学生。有一天,校长,他的名字叫PigHeader希望所有学生站在一条线。他规定,女孩不能在单独一个人站着
换句话说,队列中要么全都是男孩,要么女孩不只有一个并肩站着,例如当n=4(表示孩子的数量)有如下排列方式
FFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMM
这里的F表示女孩,M表示男孩,队列的排列方式总数满足校长需要的,有7种。
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]);
}
}
}
}