E - Children’s Queue(vj)

刚开始读错题了,没有考虑到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]);
        }	
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41061455/article/details/80744151
vj