-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathex38.cpp
52 lines (37 loc) · 1.05 KB
/
ex38.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Dãy số Fibonacci được xác định bằng công thức như sau:
// F[0] = 0, F[1] = 1;
// F[n] = F[n-1] + F[n-2] với mọi n >= 2.
// Các phần tử đầu tiên của dãy số là 0, 1, 1, 2, 3, 5, 8, ...
// Nhiệm vụ của bạn là hãy xác định số Fibonaci thứ n. Do đáp số có thể rất lớn, in ra kết quả theo modulo 109+7.
// Input:
// Dòng đầu tiên là số lượng bộ test T (T ≤ 1000).
// Mỗi test bắt gồm một số nguyên N (1 ≤ N ≤ 109).
// Output:
// Với mỗi test, in ra đáp án trên một dòng.
#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
vector<long long> F;
long long fibo(long long n){
if(n==0) return 0;
if(n==1) return 1;
return (fibo(n-2)%mod+fibo(n-1)%mod)%mod;
}
void init(){
F[0]=0;
F[1]=1;
for(int i = 2;i<=1000000000-2;i++){
F[i] = F[i-2]+F[i-1];
}
}
int main(){
int t;
cin>>t;
init();
while(t--){
long long n;
cin>>n;
cout<<F[n]<<endl;
}
return 0;
}