【题解】 UVA1646 【Edge Case】

分析

这里就是模拟一下$n=3,4,5,6$的情况,很显然可以发现这是一个广义的斐波那契数列,$f[n]=f[n-1]+f[n-2],f[3]=4,f[4]=7$,然后要用高精,因为$C++$高精实在鬼畜,并且这个是一道$ACM$的试题,于是使用$Java$水过。

代码

import java.io.BufferedInputStream;
import java.math.BigInteger;
import java.util.Scanner;

class Main{
    static Scanner in = new Scanner(new BufferedInputStream(System.in));

    public static void main(String[] args) {
        BigInteger[] f = new BigInteger[10000 + 6];
        f[3] = new BigInteger("4");
        f[4] = new BigInteger("7");
        for(int i = 5;i <= 10000;i++) f[i] = f[i - 1].add(f[i - 2]);

        while(in.hasNextInt()) {
            int n = in.nextInt();
            System.out.println(f[n].toString());
        }
    }
}