Bài tập và thực hành 4
DỮ LIỆU KIỂU DANH SÁCH (tiếp)
Bài 1
Dãy Fibonacci là dãy số nguyên dương được định nghĩa như
sau:
f1 = f2 = 1, i : 3 ≤ i : fi = fi-1 + fi-2
Viết chương trình tìm phần tử thứ n (n <= 100) của dãy
Fibonacci có sử dụng mảng
Input
Output
4
3
10
55
30
832040
100
354224848179261915075
Bài 2
Nhập vào số nguyên dương n <= 105 và dãy các số
nguyên dương a1, a2, …, an.
a) Đếm số lượng các số nguyên tố trong dãy trên có sử
dụng hàm kiểm tra một số là số nguyên tố
b) Tìm ước chung lớn nhất của a1, a2, …, an.
Bài 3
Nhập vào số nguyên dương n <= 1018, chuyển đổi số
nguyên dương n sang hệ nhị phân có sử dụng mảng
Bài 4
Viết chương trình nhập số nguyên dương n, số nguyên dương v (n
<= 105, v ≠ 0) và dãy các số nguyên A = {a1, a2, …, an}. Cho biết
v có xuất hiện trong dãy A khơng? Nếu có cho biết vị trí xuất hiện
đầu tiên của v trong A
Bài 5
Cho dãy A = {a0, a1, …, an}và số nguyên i (n <= 105, 0 ≤ i
≤ n). Tìm cách xóa các phần tử ai sao cho dãy số sau khi
xóa các phần tử cịn lại vẫn giữ ngun thứ tự
Bài 6
Cho dãy số nguyên A = {a0, a1, …, an}và chỉ số i, giá trị v (n <=
105, 0 ≤ i ≤ n). Tìm cách chèn phần tử v vào trước ai sao cho vẫn
giữ nguyên thứ tự các phần tử còn lại
Bài 7
Cho mảng A gồm các số nguyên a0, a1, …, an (n <= 1000). Hãy
sắp xếp lại mảng A sao cho a0 ≤ a1 ≤ … ≤ an
Cách 1: Dùng lệnh sắp xếp sẵn có của danh sách
Cách 2: Dùng thuật toán sắp xếp
Bài 8
Nhập vào dãy số nguyên A gồm các phần tử a1, a2, …, an
(n <= 1000). Hãy tìm đoạn con đan dấu dài nhất
Bài 9
Cho số nguyên dương n ≤ 109. Phân tích n thành tổng các số
Fibonacci khác nhau.
Lưu ý: bài có nhiều kết quả phân tích khác nhau, không nhất thiết giống test
Cách làm này ra nhiều
số fibonacci
=> Muốn ra ít số
Fibonacci nhất làm
như nào?