PDA

View Full Version : [Q] Day so



hiensmart
11-12-2002, 16:15
[FONT=century gothic]Đề:cho dãy S là các số tự nhiên viết liền nhau 1,2,3,4,5,6,7...
S=123456789101112131415161718192021222324252627282 93031......
Cho trước 1 dãy số có N chữ số(N<=250) tìm vị trí xuất hiện đầu tiên của dãy đó.VD:
Input: 101
Output:10
Xin chỉ giáo

khôngtên
11-12-2002, 19:33
Bác làm cách này thử xem sao !

S: string;
Tăng dần i rồi cộng vào S nếu rồi so sánh với chuỗi của đề cho nếu đang có các phần tử khớp nhau thì cứ tiếp tục cộng vào nếu không thì cho S rỗng và cứ thế tiếp tục !
Thuật toán là như vậy còn cách cài đặt bác tự làm nhé !

Mach2
12-12-2002, 17:24
Tôi nghĩ cách của khôngtên ổn rùi, nhưng mà có cách khác ngắn hơn có vài dòng thui là dồn hết dzô 2 chuỗi rùi dùng pos là xong,... ko chính quy lém nhưng mà nhanh, ko cần phải viết code gì cả, code thì do Pascal viết cho rùi... hehe

hiensmart
13-12-2002, 18:06
Cách của Mach2 cũng ko ổn lun.Nên nhớ mảng S là vô hạn còn dãy N là tới 250 số.-->can't be done

Mach2
13-12-2002, 19:44
Ờ đúng, để nghĩ cách khác xem sao?

hiensmart
16-12-2002, 14:59
Cách của tui:đổ S dzô file trung gian rùi tìm trong đó-->bị đánh giá l_ thiếu iod nhưng chạy tạm dc

Mach2
17-12-2002, 22:40
Bạn đổ vào file như thế nào? Chuỗi S là chuỗi vô tận cơ mà... Theo đề ra thì trường hợp tệ nhất là chuỗi con có 250 chữ số nằm đúng vị trí này, tính ra là nếu đổ S vào file thì cần phải chứa 10^250+10^249+.... ký tự... Hic?

hiensmart
28-12-2002, 17:06
Đổ dzô file đc chứ sao ko,tui su dung file of text hoac file of integer mừ, đc đổ nhiều. Trong khi dăy số đề cho trước có 250 chữ số thui, tuy nhiên do làm việc trên file nên chạy chậm rì hà

Mach2
29-12-2002, 09:07
Chùi, vậy cũng như cách vét thui mà... Bạn có thể tham khảo một cách giải trên box thuật toán của www.diendantinhoc.org. Khá hay!!!

hiensmart
01-01-2003, 08:29
Dzậy thì bạn có cách nào khác ko?