描述
数列A满足An = An-1 + An-2 + An-3, n >= 3
编写程序,给定A0, A1 和 A2, 计算A99
输入
输入包含多行数据
每行数据包含3个整数A0, A1, A2 (0 <= A0, A1, A2 <= 100000000)
输出
对于输入的每一行输出A99的值
样例输入
1 1 1
样例输出
69087442470169316923566147
思考:
A4=A3+A2+A1;
A5=A4+A3+A2;
A6=A5+A4+A3;
替换程x,y,z,t则变为
t=z+y+x;
t1=z1+y1+x1;
t2=z2+y2+x2;
可得:
t=z+y+x;
t1=t+z+y;
t2=t1+t+z;
一次运算后t变为下一次运算的z,z变为下一次运算的y,y变为下一次运算的x
代码如下
import java.math.BigInteger;
import java.util.Scanner;
/**
* Created by lcc on 2017/6/1.
*/
public class Dashujuxulie {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
BigInteger x = scanner.nextBigInteger();
BigInteger y = scanner.nextBigInteger();
BigInteger z = scanner.nextBigInteger();
for (int i = 3; i <= 99; i++) {
BigInteger t = (x.add(y)).add(z);
x = y;
y = z;
z = t;
}
System.out.println(z);
}
}
}