问题描述
给定数列1、1、1、3、5、9、17、…… 从第四项开始,每项都是前三项的和,求第20190324项的最后四位数字
思路
看到问题应该第一时间想到的是斐波那契数列,但是他要的是20190324项,即使使用long类型也没办法存储这么大的数据。不过再仔细读题,要求的是后四位数字,所以在递推的过程中 我们只需要看他们的后四位即可
代码实现
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a = 1,b=1,c=1;
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
while(--n !=0){
int d = (a+b+c)%10000;
a=b; b=c; c=d;
}
// for (int i = 3; i < 20190324; i++) {
// int temp = (a + b + c) % 10000;
// a = b;
// b = c;
// c = temp;
// }
// System.out.println(c);
System.out.println(a%10000);
}
}