大数数列求值时要进行取余操作及其原理

就拿2019年蓝桥杯的题目来说明吧。
大数数列求值时要进行取余操作及其原理
当我取用整形数组来存放数据时,会有如下结果:
大数数列求值时要进行取余操作及其原理
这里求出的结果为856830691

第二次采用long长整型的数据类型数组来存放数据,代码结果如下:

大数数列求值时要进行取余操作及其原理
这里求出的结果为5268603393216230115

两次测试的结果为什么会不一样的呢?原因是因为int与long的精度不一样,对于int型数据应该是数据溢出了,而对于long而言也有可能溢出,由于我们这里要求求的是后四位数,所以我们可以利用取余操作来减小数的 大小同时也能取到最后四位数。最后代码为和结果为:
大数数列求值时要进行取余操作及其原理
结果为:4659