刚开始读错题了,没有考虑到FFMFF,FFFMFF这类情况,以为是个公式,然后wa。其实这算是一道递推题,如果对数据敏感的话,打表也可以看出些什么。F[i]=F[i-1]+F[i-2]+F[i-4];
erqie,当n很大的时候,ans非常大,用BigInteger就显得很方便了。
import java.util.Scanner;
import java.math.BigInteger;
public class Main {
public static void main(String[] argc) {
Scanner cin = new Scanner(System.in);
BigInteger[] ans = new BigInteger[1001];
ans[1] = BigInteger.ONE;
ans[2] = ans[1].add(BigInteger.ONE);
ans[3] = BigInteger.valueOf(4);
ans[4] = BigInteger.valueOf(7);
for (int i = 5; i <= 1000; i++)
{
ans[i] = ans[i-1].add(ans[i-4]).add(ans[i-2]);
}
while (cin.hasNext()) {
int n = cin.nextInt();
System.out.println(ans[n]);
}
}
}