1.题目
2.解题思路 开始的时候 利用递归去做 不对 运行不出来 然后利用数组储存依次储存每一个值 最后取最后四位数 结果还是不对 取值太大了 最后去搜了一下答案 要每一次取模 才能算出正确答案
然后我就疑惑了 每一次取模 那会改变数组的值吗?? 然后我就枚举了几个数 一万左右的数 事实证明 它是不影响的 原理有人说是向上取位 不过实践出真理
3.代码
package hanjia;
import java.util.Scanner;
public class J33 {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();//读取20190324
int [] a=new int[n];//储存数列每一个数
a[0]=1;
a[1]=1;
a[2]=1;
for(int i=3;i<n;i++) {
a[i]=(a[i-3]+a[i-2]+a[i-1])%10000;
//数值过大 会溢出 由于只取后四位 对数值进行取余%10000
}
System.out.println(a[n-1]);
}
}
4.总结 学海无涯