Bài 4: Số Fibonacsi (TS10 Hưng Yên 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1100 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Số Fibonacci được định nghĩa là: \(F_0 = 0, F_1 = 1, F_n = F_{n-1} + F_{n-2}\) với mọi \(n > 1\).

Cho xâu \(S\) có độ dài không vượt quá \(10^6\) gồm các kí tự chữ cái và kí tự chữ số. Các số trong xâu \(S\) là một dãy các kí tự chữ số liên tiếp được phân tách bởi các kí tự chữ cái.

Sau khi thực hiện lấy ra các số trong \(S\), ta thu được một dãy số \(A\) gồm \(m\) số nguyên dương \(a_1, a_2, \dots, a_m\). Ví dụ, xâu \(S =\) ab123cd67e15g67, ta có dãy số \(A = [123, 67, 15, 67]\). Chú ý rằng các số \(1, 12, 2, 23, 3, 6, 7, 1, 5\) không được tính là tồn tại trong dãy \(A\).

Yêu cầu: Cho biết tất cả các phần tử trong dãy \(A\) luôn có giá trị không vượt quá \(10^{18}\). Hãy đếm số lượng phần tử trong dãy \(A\) là số Fibonacci.

Input

  • Một dòng duy nhất chứa xâu \(S\) có độ dài không vượt quá \(10^6\).

Output

  • Một số nguyên duy nhất là số lượng phần tử trong dãy \(A\) là số Fibonacci.

Example

Test 1

Input
ab14def2cd1ag6bc2h13
Output
4
Note

Thực hiện tách các số trong xâu \(S\) ta thu được dãy \(A\) gồm các số \(14, 2, 1, 6, 2, 13\). Trong đó các số là số Fibonacci bao gồm: \(2, 1, 2, 13\).

Scoring

  • Subtask \(1\) (\(0.5\) điểm): Các số trong dãy \(A\) đều có \(1\) chữ số.
  • Subtask \(2\) (\(0.4\) điểm): Các số trong dãy \(A\)\(1\) hoặc \(2\) chữ số.
  • Subtask \(3\) (\(1.1\) điểm): Không có ràng buộc bổ sung.

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: