HDU1021 Fibonacci Again

起初想用高精度来做,但是题目要判断的是是否能被三整除,即使算出高精度后再进行除三计算好像也不太现实,

看过题解发现原来可以对每一次算出来的结果进行对三取余,这样能够减小数字的规模,同时这样算出的结果和

不取余的结果没有偏差。

 1 #include <iostream>
 2 using namespace std;
 3 int f[1000010];
 4 int main(){
 5     f[0] = 7, f[1] = 11;
 6     int temp;
 7     while(cin >> temp){
 8        for(int i = 2; i <= temp; i ++)
 9             f[i] = (f[i - 1] + f[i - 2]) % 3;
10         cout << f[temp] << endl;
11     }
12     return 0;
13 }
原文地址:https://www.cnblogs.com/pureayu/p/12691735.html