大数数列求值时要进行取余操作及其原理
就拿2019年蓝桥杯的题目来说明吧。
当我取用整形数组来存放数据时,会有如下结果:
这里求出的结果为856830691
第二次采用long长整型的数据类型数组来存放数据,代码结果如下:
这里求出的结果为5268603393216230115
两次测试的结果为什么会不一样的呢?原因是因为int与long的精度不一样,对于int型数据应该是数据溢出了,而对于long而言也有可能溢出,由于我们这里要求求的是后四位数,所以我们可以利用取余操作来减小数的 大小同时也能取到最后四位数。最后代码为和结果为:
结果为:4659