30/09/2018, 16:02
Code sinh hoán vị kế tiếp bị kết quả sai
Đây là đề bài ạ
SPOJ.com - Problem BCNEPER
...
Còn đây là code của em , sao e test trên Dev C++ thì đúng mà sub lại Kết quả sai ạ ?
Ideone.com
Ideone is something more than a pastebin; it's an online compiler and debugging tool which allows to compile and run code online in more than 40 programming languages.
Bài liên quan
Chào bạn,
Nếu bạn làm đúng cả 3 test của đề bài thì 99% là đúng rồi đấy.
Điểm mấu chốt là đề bài bảo: số có 80 chữ số, mà bạn khai báo có a[80] thì ra đáp số sai là phải rồi. ít nhất phải khai báo a[81] chứ
Mình thấy thuật toán bạn hơi lạ thì phải, cái này phải dùng thuật toán sinh hoán vị tiếp theo. Bạn làm theo thuật toán này thử xem:
Mình có tí nhận xét ngoài lề :
hàm swap là một hàm trong C++ tự định nghĩa sẵn, nên bạn không cần phải cài đặt nó làm gì nhé.
Bạn viết hàm đổi string sang int hơi dài, bạn có thể áp dụng:
3. Mình thấy, bạn khai báo string dạng mảng kí tự thì đã dùng kiểu chuổi của C, dó đó bạn có thể dùng hàm atoi để chuyển chuỗi sang int nhanh chóng rồi.
Tuy nhiên, bài này bạn không cần xây dựng hàm chuyển đổi string sang int đâu, vì kiểu kí tự (char) cũng so sánh được mà, đâu cần phải đổi sang số int.
Cuối cùng, bạn có thể tham khảo code của mình vừa làm (submit ra đáp số đúng rồi nên bạn yên tâm )
Dùng luôn cái next_permutation đi
Quên mất, bạn quả nhiên cao minh
p/s: có luyện ACM/ICPC gì không mà pro thế
Học thuật toán chơi thôi. Thích hoc toán hơn