一、题目
数列求值
【问题描述】给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个 4 位整数(提示:答案的千位不为 0),在提交答案时只填写这个整数,填写多余的内容将无法得分。
二、分析
看到这个题目,想到可以用动态数组的方式
a[0] | a[1] | a[2] | a[3] |
1 | 1 | 1 | 3 |
将前三个元素相加放到第四个位置,然后将第二、第三、第四个元素复制到它前一个的位置。
代码:
package lan2019;
public class C数列求和 {
public static void main(String[] args) {
int[] a = new int[20190324];
a[0] = 1;
a[1] = 1;
a[2] = 1;
for(int i = 3; i <= 20190323; i++) {
a[i] = a[i-3] + a[i-2] + a[i-1];
//只要求后四位
a[i] %= 10000;
}
System.out.println(a[20190323]);
}
}
结果: 4659
反思:
因为我设置的数组下表是从0开始的,注意注意i的范围以及不要超过数组的长度,
也可以数组下标从1开始,更清楚一点
标签:数列,真题,int,20190324,蓝桥,数组,求值,public From: https://blog.csdn.net/2301_76876837/article/details/137062127package lan2019;
public class C数列求和 {
public static void main(String[] args) {
int[] a = new int[20190325];
a[1] = 1;
a[2] = 1;
a[3] = 1;
for(int i = 4; i <= 20190324; i++) {
a[i] = a[i-3] + a[i-2] + a[i-1];
//只要求后四位
a[i] %= 10000;
}
System.out.println(a[20190324]);
}
}