蓝桥杯 数值求值(Java)
- 题目
- 思路
- 代码
题目:
【问题描述】
给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求
第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写
多余的内容将无法得分
思路:
难点:直接求,结果后四位千位是0,因为结果超过long类型的长度,是错误的,因为结果是提交后四位,那么只要把后四位保存在结果就行了,而且只加后四位不影响结果
eg:
12+19=31
只保留各位进行相加
2+9=1 1 也是对的,末位还是1
代码:
public class shulieqiuzhi {
public static void main(String[] args) {
long a[]=new long[20190324];
a[0]=a[1]=a[2]=1;
for (int i = 3; i < a.length; i++) {
a[i]=a[i-1]+a[i-2]+a[i-3];
if(a[i]>10000) {
a[i]%=10000; //只保留后四位
}
}
System.out.println(a[20190323]);
}
}