1017. 二哥养兔子

Description

二哥培养出了一种繁殖能力很强的兔子。

这种兔子在出生后的第一个月,能够生出a对兔子;第二个月,能够生出b对兔子;第三个月以及以后的每个月,都可以生出c对兔子。

二哥对此很感兴趣,若他有一对刚出生的兔子,按照最理想的模式繁殖,并假设兔子不死,二哥想知道最少需要几个月这些兔子可以遍布地球的每个角落。

为了回答这个问题,二哥想要知道这种兔子在第N个月时的对数。

Input Format

输入只有一行,四个数,分别为a,b,c,N ( 0abc100,N1000

),其含义为题目所述。

Output Format

输出只有一个数,为第N个月兔子的对数。

Sample Input

0 1 1 11

Sample Output

144



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

public class Main{
    public static void main(String args[]){
        Scanner in = new Scanner(System.in);
        BigInteger a,b,c;
        int n;
        BigInteger[] zz=new BigInteger[1001];
        a = in.nextBigInteger();
        b = in.nextBigInteger();
        c = in.nextBigInteger();
        n = in.nextInt();
        zz[0]=BigInteger.valueOf(1);
        zz[1]=a.add(zz[0]);
        zz[2]=b.add(a.add(zz[0].add(a.multiply(a))));
        for(int i=3;i<=n;i++){
            zz[i]=zz[i-3].multiply(c).add(zz[i-2].subtract(zz[i-3]).multiply(b)).add(zz[i-1].subtract(zz[i-2]).multiply(a)).add(zz[i-1]);
        }
        System.out.println(zz[n]);
    }
}
原文地址:https://www.cnblogs.com/bernieloveslife/p/7845666.html