Bailian2758 菲波那契數列(2)【遞推】
阿新 • • 發佈:2018-12-27
2758:菲波那契數列(2)
總時間限制: 1000ms 記憶體限制: 65536kB
描述
菲波那契數列是指這樣的數列: 數列的第一個和第二個數都為1,接下來每個數都等於前面2個數之和。
給出一個正整數a,要求菲波那契數列中第a個數對1000取模的結果是多少。
輸入
第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括一個正整數a(1 <= a <= 1000000)。
輸出
n行,每行輸出對應一個輸入。輸出應是一個正整數,為菲波那契數列中第a個數對1000取模得到的結果。
樣例輸入
4
5
2
19
1
樣例輸出
5
1
181
1
問題連結:Bailian2758 菲波那契數列(2)
問題描述
問題分析:
簡單的遞推函式實現,不解釋。
程式說明:(略)
參考連結:(略)
題記:(略)。
AC的C語言程式如下:
/* Bailian2758 菲波那契數列(2) */ #include <stdio.h> #define MOD 1000 int fib(int n) { if(n == 1 || n == 2) return 1; else { int f1 = 1, f2 = 1, tmp, i; for(i = 3; i <= n; i++) { if((tmp = f1 + f2) >= MOD) tmp -= MOD; f1 = f2; f2 = tmp; } return f2; } } int main(void) { int t, a; scanf("%d", &t); while(t--) { scanf("%d", &a); printf("%d\n", fib(a)); } return 0; }