cpp-287Đọc toàn bộ đề miễn phí

Tính số hạng thứ n của dãy Tribonacci

Dãy Tribonacci là bản mở rộng của dãy Fibonacci khi mỗi số hạng bằng tổng ba số hạng liền

C++Cơ bản10 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

dynamic-programmingrecurrencesequencesentry-ramp

Kiến thức tiên quyết: cpp-basics, loops.

Nội dung đề bài

Mô tả bài toán

Dãy Tribonacci là bản mở rộng của dãy Fibonacci khi mỗi số hạng bằng tổng ba số hạng liền trước. Vì công thức truy hồi chỉ nhìn về quá khứ đã tính xong, ta chỉ cần một mảng nhỏ để lưu lại ba giá trị trước đó là có ngay đáp án.

Yêu cầu

Dãy Tribonacci được định nghĩa như sau: T(0) = 0, T(1) = 1, T(2) = 1, và với n >= 3 thì T(n) = T(n-1) + T(n-2) + T(n-3). Cho số nguyên n, hãy in ra T(n).

Quy ước nộp bài

Nộp tệp solution.cpp đọc n từ stdin và ghi kết quả ra stdout. Chỉ in một số nguyên trên một dòng, không kèm chữ hay dấu cách thừa.

Input

  • Một dòng duy nhất chứa số nguyên n (0 <= n <= 40).

Output

  • Một số nguyên trên một dòng là T(n). Giá trị T(40) = 12960201916 nên cần kiểu 64 bit.

Ràng buộc

  • 0 <= n <= 40, kết quả vượt 32 bit từ n = 34 trở đi.
  • Thời gian cho mỗi bộ dữ liệu là 1 giây.

Ví dụ 1

Input

0

Output

0

Ví dụ 2

Input

1

Output

1

Giải thích

Với n = 5 thì T(3) = 1 + 1 + 0 = 2, T(4) = 2 + 1 + 1 = 4, T(5) = 4 + 2 + 1 = 7. Chương trình đọc

và in ra

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo