题目:
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
思路:
让我想到了斐波那契数,
数据类型装不下这么大的数,直接在运算的时候取余10000得后四位
import java.util.Scanner;
/**
* 题目2:给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
* @author ah xin
*
*/
public class AMain2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long a1 = 1,a2 = 1,a3 = 1; //给出前三个的值
for(int i = 4; i <= n; i++) {
long a4 = a1;
a1 = a2;
a2 = a3;
a3 = (a4+a1+a2)%10000; //后一位等于前三位和相加,数据类型装不下,所以先取余再装进去
}
System.out.println(a3);
}
}
以上是《蓝桥杯 JAVA第十届C组 真题 给定数列》的全部内容,
感谢您对程序员阿鑫博客的支持!