Đề PASCAL_Dãy số

Chia sẻ bởi Vi Đình Nghĩa | Ngày 16/10/2018 | 46

Chia sẻ tài liệu: Đề PASCAL_Dãy số thuộc Tư liệu tham khảo

Nội dung tài liệu:

Bài1. Dãy số Xét dãy số nguyên gồm n số hạng a1, a2, …, an (n được gọi là độ dài của dãy) được xác định như sau: a1 = a2 = a3 = 1; an = an −3 + an −1 với n > 3. Yêu cầu: Hãy xác định độ dài lớn nhất của dãy thoả mãn mọi giá trị số hạng đều nhỏ hơn hay bằng một giá trị nguyên k cho trước. Dữ liệu: Vào từ file văn bản DAYSO.INP gồm một dòng chứa không quá 255 chữ số viết liền nhau (không có các số 0 vô nghĩa ở đầu) biểu diễn giá trị k. Kết quả: Ghi ra file văn bản DAYSO.OUT độ dài tìm được theo quy cách giống như file dữ liệu vào. Ví dụ: 
Huong dan
Bài 1: Dãy số Đây là một bài dễ gây hoang mang cho các bạn, vì giá trị của số nguyên K rất lớn (255 chữ số). Sẽ có rất nhiều bạn sẽ đi tìm mẹo của bài toán này nhằm giải quyết vấn đề thời gian của bài toán. Nhưng chỉ cần làm phép toán cộng số lớn thì các bạn có thể giải quyết tốt bài toán trên rồi đấy. Tôi có một chú ý với các bạn là không nên dùng cộng số lớn bằng xâu vì với số K có 255 chữ số thì có thể bạn sẽ vượt qua mức giới hạn 255 của xâu dẫn đến kết quả sai, đồng thời cộng số lớn bằng mảng rất đơn giản, gọn đẹp. Giả sử cộng 2 số X,Y. + Cho mảng a đặc trưng cho số X + Cho mảng b đặc trưng cho số Y Khi cộng 2 số lớn thường bạn phải thêm 0 vào trước số nhỏ hơn để 2 số có cùng số chữ số để dể cộng. Nhưng khi bỏ vào mảng thì làm sao đây Rất đơn giản, mảng chứa theo thứ tự ngược lại: Ví dụ: với số X=1965 thì mảng a sẽ là: (5,6,9,1,0,0,0,…) Sô Y=876 thì mảng b sẽ là: (6,7,8,0,0,0,0,…) Như thế thì cộng rất dễ dàng với nhau phải không các bạn. Sau đây là chương trình chính của bài trên:
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Vi Đình Nghĩa
Dung lượng: 27,50KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)