Đề PASCAL duyệt

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

Chia sẻ tài liệu: Đề PASCAL duyệt thuộc Tư liệu tham khảo

Nội dung tài liệu:

Bài 1 : Đường đi đến số 0
Đề bài :
Mỗi một số nguyên dương đều có thể biểu diễn dưới dạng tích của 2 số nguyên dương X,Y sao cho X<=Y . Nếu như trong phân tích này ta thay X bởi X-1 còn Y bởi Y+1 thì sau khi tính tích của chúng ta thu được hoặc là một số nguyên dương mới hoặc là số 0 .
Ví Dụ : Số 12 có 3 cách phân tích 1*12 ,3*4 , 2*6 . Cách phân tích thứ nhất cho ta tích mới là 0 : (1-1)*(12+1) = 0 , cách phân tích thứ hai cho ta tích mới 10 : (3-1)*(4+1) = 10 , còn cách phân tích thứ ba cho ta 7 : (2-1)*(6+1)=7 . Nếu như kết quả là khác không ta lại lặp lại thủ tục này đối với số thu được . Rõ ràng áp dụng liên tiếp thủ tục trên , cuối cùng ta sẽ đến được số 0 , không phụ thuộc vào việc ta chọn cách phân tích nào để tiếp tục
Yêu cầu : Cho trước số nguyên dương N ( 1<=N<=10000) , hãy đưa ra tất cả các số nguyên dương khác nhau có thể gặp trong việc áp dụng thủ tục đã mô tả đối với N .
Dữ liệu : Vào từ file Zeropath.Inp chứa số nguyên dương N .
Kết quả : Ghi ra file văn bản Zeropath.Out :
Dòng đầu tiên ghi K là số lượng số tìm được
Dòng tiếp theo chứa K số tìm được theo thứ tự tăng dần bắt đầu từ số 0 .
Luư ý : Có thể có số xuất hiện trên nhiều đường biến đổi khác nhau , nhưng nó chỉ được tính một lần trong kết quả .
Ví Dụ :

ZEROPATH.INP ZEROPATH.OUT
12 6
0 3 4 6 7 10

Hướng Dẫn :
Đơn giản là sau mỗi lần phân tích thì chắc chắn kết quả mới luôn nhỏ hơn số đó . Vì vậy ta chỉ cần lu trữ dưới mảng kt: [0..10000] of boolean ; trong đó kt[i]=true nếu nó xuất hiện trên đường đi đó , ngược lại thì kt[i]=false . Bằng cách loang theo chiều sâu , chúng ta sẽ đánh dấu các số nếu nó được dùng đến , cho đến khi không thể nào loang được nữa thì dừng .

Bài 2 : Con Mã
Đề Bài :
Một bàn cờ hình chữ nhật kích thước MxN , M,N nguyên dương không lớn hơn 100 . Bàn cờ chia thành các ô vuông đơn vị bằng các đường song song với các cạnh . Các dòng ô vuông đánh số từ 1 đến M từ trên xuồng dưới , các cột đánh số từ 1 đến N từ trái sang phải . Cho trước một số nguyên dương K<=1000 . Một con ngựa đứng ở ô [u,v] và nhảy không quá k bước .
Yêu cầu : Hãy cho biết con ngựa có thể nhảy đến bao nhiêu ô khác ô[u,v] trên bàn cờ và đó là những ô nào ( khi đứng tại một ô , con ngựa có thể nhảy tới ô đối đỉnh của hình chữ nhật kích thước 2x3 ) .
Dữ liệu : Vào từ file MA.INP trong đó :
Dòng đầu tiên ghi hai số M,N
Dòng thứ hai ghi số K
Dòng thứ ba ghi hai số U ,V
Kết quả : Ghi ra file MA.OUT :
Dòng đầu tiên ghi S là số ô con ngựa có thể nhảy đến
Tiếp theo là S dòng , mỗi dòng ghi chỉ số dòng và chỉ số cột của một ô mà con ngựa có
* 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,00KB| Lượt tài: 0
Loại file: doc
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)