FIBO1 - Tìm số Fibonacci thứ N

Xem dạng PDF

Gửi bài giải


Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, PyPy, Python, Ruby, Rust, Scratch, Swift

Dãy số Fibonacci được định nghĩa  $$\left\{ \begin{array}{l}{F_0} = {F_1} = 1\\{F_n} = {F_{n - 1}} + {F_{n - 2}},\forall n \ge 2\end{array} \right.$$

Yêu cầu:

Cho số nguyên không âm ~n~, hãy tính ~F_n~

Input

  • Dòng đầu chứa số nguyên ~T~ là số bộ test.
  • Dòng sau chứa ~T~ số nguyên không âm, hai số liên tiếp cách nhau một dấu cách.

Giới hạn:

  • ~0 ≤ n ≤ 10000; 1 ≤ T ≤ 100~.

Output

  • Gồm ~T~ dòng là, mỗi dòng là kết quả của test đầu vào tương ứng.

Sample

Input #1
3
0 1 2
Output #1
1
1
2
Input #2
2
5 3
Output #2
8
3

Problem source: Chuyên Sơn La Online Judge


Bình luận

Please read the guidelines before commenting.



  • 1
    mducc  đã bình luận lúc 2, Tháng 6, 2026, 14:18

    hint ta có thể xây dựng số bignum để xử lí

    code tham khảo (c++)

    https://ide.usaco.guide/Ou7gVlqT2iIb3YvXMY7


    • 1
      mducc  đã bình luận lúc 2, Tháng 6, 2026, 14:18

      ai nhấn vào mà ko đc thì copy link sẽ xem đc nhé


  • 0
    minhlong180714  đã bình luận lúc 23, Tháng 4, 2026, 13:19

    :)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))


  • 0
    minhlong180714  đã bình luận lúc 23, Tháng 4, 2026, 13:16

    có ai biết code bài này bằng python chưa


  • -1
    congtyluuthaibao1978  đã bình luận lúc 26, Tháng 11, 2025, 10:06

    include <bits/stdc++.h>

    using namespace std;

    // add two non-negative decimal integers represented as strings string addStrings(const string &a, const string &b) { int i = (int)a.size() - 1; int j = (int)b.size() - 1; int carry = 0; string res; res.reserve(max(a.size(), b.size()) + 1); while (i >= 0 || j >= 0 || carry) { int da = (i >= 0) ? (a[i] - '0') : 0; int db = (j >= 0) ? (b[j] - '0') : 0; int s = da + db + carry; carry = s / 10; res.push_back(char('0' + (s % 10))); --i; --j; } reverse(res.begin(), res.end()); return res; }

    int main() { ios::syncwithstdio(false); cin.tie(nullptr);

    int T;
    if (!(cin >> T)) return 0;
    vector<int> queries(T);
    int maxN = 0;
    for (int i = 0; i < T; ++i) {
        cin >> queries[i];
        if (queries[i] > maxN) maxN = queries[i];
    }
    
    // Precompute Fibonacci from 0..maxN with big integers as strings
    vector<string> fib(maxN + 1);
    if (maxN >= 0) fib[0] = "1";
    if (maxN >= 1) fib[1] = "1";
    for (int i = 2; i <= maxN; ++i) {
        fib[i] = addStrings(fib[i-1], fib[i-2]);
    }
    
    // Output results, one per line in the same order as input
    for (int i = 0; i < T; ++i) {
        cout << fib[queries[i]] << '\n';
    }
    return 0;
    

    }


  • 0
    godhayuu  đã bình luận lúc 6, Tháng 10, 2025, 7:48

    bn ơi c++ dùng được ạ

    string x, y;
    cin >> x >> y;
    string s = x + y;
    

  • -1
    Ngoc_Thach  đã bình luận lúc 6, Tháng 8, 2025, 13:26 chỉnh sửa

    chào mn


  • 0
    Qa5555  đã bình luận lúc 22, Tháng 3, 2025, 14:32

    Bài này nên dùng python và khử đệ quy , se AC dễ hơn c++


  • 0
    thh  đã bình luận lúc 4, Tháng 2, 2024, 5:15

    Đây là code phần bigint

    https://www.ideone.com/h3dNXg


  • 0
    huy132004  đã bình luận lúc 23, Tháng 10, 2023, 15:59

    Java phải dùng tới BigInteger mới được.


  • -1
    hnguyen  đã bình luận lúc 8, Tháng 10, 2023, 9:13

    xử lí số nguyên lớn


  • -1
    lch101  đã bình luận lúc 29, Tháng 8, 2023, 8:46

    hơi thắc mắc chút là n = 92 93 là đã vượt giới hạn long long r thì làm như nào nhỉ ?